import cgsuite.plugin.*; public class SamplePlugin implements Plugin { public SamplePlugin() { } public PluginInfo getPluginInfo() { PluginInfo info = new PluginInfo(); info.name = "Sample Plug-in"; info.version = new int[] { 1, 0 }; info.description = "An example plug-in that includes Partizan Nim and Fission."; return info; } public void initialize(PluginContext context) { context.registerType(PartizanNimPosition.class, "PartizanNimPosition"); context.declareMethod( "PartizanNim", new Class[] { int[].class, int[].class, Integer.class }, new MethodInvoker() { public Object invoke(String name, Object[] args, java.util.Map optionalArgumentMap) { return new PartizanNimPosition((int[]) args[0], (int[]) args[1], ((Integer) args[2]).intValue()); }}); context.registerType(FissionPosition.class, "FissionPosition"); context.declareMethod( "Fission", new Class[] { String[].class }, new MethodInvoker() { public Object invoke(String name, Object[] args, java.util.Map optionalArgumentMap) throws MethodInvocationException { return new FissionPosition((String[]) args[0]); }}, true ); if (context.isGUI()) { context.registerIOHandler(FissionPosition.class, new GridIOHandler(5, 5)); } } }