📄 agentlibrary.java
字号:
package graph;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import org.jgraph.graph.DefaultGraphCell;
public class AgentLibrary {
public AgentLibrary()
{
allAgents = new Hashtable();
}
public void addAgent(String name, String className)
{
allAgents.put(name, className);
}
public LinkedList getAgentTypes()
{
Iterator iterator = allAgents.keySet().iterator();
if (iterator != null)
{
//String result[] = new String[allAgents.size()];
LinkedList result = new LinkedList();
while(iterator.hasNext())
{
result.add((String)iterator.next());
}
return result;
}
else
{
return null;
}
}
public String getAgentAction(String name)
{
try
{
//System.out.println ("name of new agent: " + name);
String className = (String)allAgents.get(name);
//System.out.println ("className = " + className);
Class agentClass = Class.forName(className);
//System.out.println(className + " OK");
Method getAgentActionMethod = agentClass.getMethod("getAction", null);
return (String) getAgentActionMethod.invoke(null, null);
}
catch (Exception e)
{
System.out.println("New agent not started");
return ("-");
}
}
public void startNewAgent(DefaultGraphCell origin)
{
String name = GraphEventManager.getReference().eventgetAgentType();
try
{
//System.out.println ("name of new agent: " + name);
String className = (String)allAgents.get(name);
//System.out.println ("className = " + className);
Class agentClass = Class.forName(className);
//System.out.println(className + " OK");
Class formalArgs[] = new Class[1];
formalArgs[0] = Class.forName("org.jgraph.graph.DefaultGraphCell");
Method startMethod = agentClass.getMethod("startAction", formalArgs);
//System.out.println("Method OK");
Object actualArgs[] = new Object[1];
actualArgs[0] = origin;
startMethod.invoke(null, actualArgs);
}
catch (Exception e)
{
System.out.println("New agent not started");
}
}
public Agent constructNewAgent(String name, DefaultGraphCell origin, ResourceQuery searchFor)
{
try
{
//System.out.println ("name of new agent: " + name);
String className = (String)allAgents.get(name);
//System.out.println ("className = " + className);
Class agentClass = Class.forName(className);
//System.out.println(className + " OK");
Class formalArgs[] = new Class[2];
formalArgs[0] = Class.forName("org.jgraph.graph.DefaultGraphCell");
formalArgs[1] = Class.forName("graph.ResourceQuery");
//System.out.println("All classes found");
Constructor agentConstructor = agentClass.getConstructor(formalArgs);
//System.out.println("Constructor OK");
Object actualArgs[] = new Object[2];
actualArgs[0] = origin;
actualArgs[1] = searchFor;
//System.out.println("ActualArgs OK");
return (Agent)agentConstructor.newInstance(actualArgs);
}
catch (Exception e)
{
return new SimpleAgent(origin, searchFor);
}
}
private Hashtable allAgents;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -