|
From: <jom...@us...> - 2014-08-17 17:54:36
|
Revision: 1793
http://sourceforge.net/p/jason/svn/1793
Author: jomifred
Date: 2014-08-17 17:54:33 +0000 (Sun, 17 Aug 2014)
Log Message:
-----------
improve the API to help parsing JaCaMo project files
Modified Paths:
--------------
trunk/demos/distributed-jade/case2/myAllocator.java
trunk/src/jason/architecture/MindInspectorWeb.java
trunk/src/jason/asSemantics/Agent.java
trunk/src/jason/infra/centralised/RunCentralisedMAS.java
trunk/src/jason/infra/centralised/StartNewAgentGUI.java
trunk/src/jason/infra/jade/JadeMASLauncherAnt.java
trunk/src/jason/infra/jade/RunJadeMAS.java
trunk/src/jason/mas2j/AgentParameters.java
trunk/src/jason/mas2j/ClassParameters.java
trunk/src/jason/mas2j/parser/MAS2JavaParser.jcc
trunk/src/jason/mas2j/parser/mas2j.java
Modified: trunk/demos/distributed-jade/case2/myAllocator.java
===================================================================
--- trunk/demos/distributed-jade/case2/myAllocator.java 2014-08-05 18:38:39 UTC (rev 1792)
+++ trunk/demos/distributed-jade/case2/myAllocator.java 2014-08-17 17:54:33 UTC (rev 1793)
@@ -35,7 +35,7 @@
// computes the number of agents in the project
int nbAgs = 0;
for (AgentParameters ap : project.getAgents()) {
- nbAgs += ap.qty;
+ nbAgs += ap.getNbInstances();
}
int agsByContainer = nbAgs / containers.size();
@@ -45,9 +45,9 @@
int i=0;
for (AgentParameters ap : project.getAgents()) {
String agName = ap.name;
- for (int cAg = 0; cAg < ap.qty; cAg++) {
+ for (int cAg = 0; cAg < ap.getNbInstances(); cAg++) {
String numberedAg = agName;
- if (ap.qty > 1) {
+ if (ap.getNbInstances() > 1) {
numberedAg += (cAg + 1);
}
String c = containers.get( i % containers.size());
Modified: trunk/src/jason/architecture/MindInspectorWeb.java
===================================================================
--- trunk/src/jason/architecture/MindInspectorWeb.java 2014-08-05 18:38:39 UTC (rev 1792)
+++ trunk/src/jason/architecture/MindInspectorWeb.java 2014-08-17 17:54:33 UTC (rev 1793)
@@ -122,8 +122,9 @@
}
private String getAgNameFromPath(String path) {
- int nameStart = path.indexOf("agent-mind")+11;
+ int nameStart = path.indexOf("agent-mind");
if (nameStart < 0) return null;
+ nameStart += "agent-mind".length() + 1;
int nameEnd = path.indexOf("/",nameStart+1);
if (nameEnd >= 0)
return path.substring(nameStart,nameEnd).trim();
@@ -138,7 +139,7 @@
AgArch arch = ag.getTS().getUserAgArch();
if (arch != null) {
// should add a new conf for mindinspector, otherwise will start a new gui for the agent
- arch.getTS().getSettings().addOption("mindinspector","web(cycle,html,history)");
+ arch.getTS().getSettings().addOption("mindinspector","web(cycle,html,no_history)");
MindInspectorAgArch miArch = new MindInspectorAgArch();
arch.insertAgArch(miArch);
miArch.init();
Modified: trunk/src/jason/asSemantics/Agent.java
===================================================================
--- trunk/src/jason/asSemantics/Agent.java 2014-08-05 18:38:39 UTC (rev 1792)
+++ trunk/src/jason/asSemantics/Agent.java 2014-08-17 17:54:33 UTC (rev 1793)
@@ -540,7 +540,7 @@
if (sGoals != null) {
try {
for (Term t: ASSyntax.parseList("["+sGoals+"]")) {
- Literal g = (Literal)t;
+ Literal g = ((Literal)t).forceFullLiteralImpl();
g.makeVarsAnnon();
if (! g.hasSource())
g.addAnnot(BeliefBase.TSelf);
Modified: trunk/src/jason/infra/centralised/RunCentralisedMAS.java
===================================================================
--- trunk/src/jason/infra/centralised/RunCentralisedMAS.java 2014-08-05 18:38:39 UTC (rev 1792)
+++ trunk/src/jason/infra/centralised/RunCentralisedMAS.java 2014-08-17 17:54:33 UTC (rev 1793)
@@ -76,16 +76,16 @@
public final static String stopMASFileName = ".stop___MAS";
public final static String defaultProjectFileName = "default.mas2j";
- private static Logger logger = Logger.getLogger(RunCentralisedMAS.class.getName());
+ protected static Logger logger = Logger.getLogger(RunCentralisedMAS.class.getName());
protected static RunCentralisedMAS runner = null;
- private static String urlPrefix = "";
- private static boolean readFromJAR = false;
- private static MAS2JProject project;
- private static boolean debug = false;
+ protected static String urlPrefix = "";
+ protected static boolean readFromJAR = false;
+ protected static MAS2JProject project;
+ protected static boolean debug = false;
- private CentralisedEnvironment env = null;
- private CentralisedExecutionControl control = null;
- private Map<String,CentralisedAgArch> ags = new ConcurrentHashMap<String,CentralisedAgArch>();
+ protected CentralisedEnvironment env = null;
+ protected CentralisedExecutionControl control = null;
+ protected Map<String,CentralisedAgArch> ags = new ConcurrentHashMap<String,CentralisedAgArch>();
public JButton btDebug;
@@ -112,7 +112,7 @@
} else {
System.out.println("Jason "+Config.get().getJasonRunningVersion());
System.err.println("You should inform the MAS project file.");
- JOptionPane.showMessageDialog(null,"Jason version "+Config.get().getJasonRunningVersion()+" library built on "+Config.get().getJasonBuiltDate(),"Jason", JOptionPane.INFORMATION_MESSAGE);
+ JOptionPane.showMessageDialog(null,"You should inform the project file as a parameter.\n\nJason version "+Config.get().getJasonRunningVersion()+" library built on "+Config.get().getJasonBuiltDate(),"Jason", JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
} else {
@@ -367,16 +367,16 @@
String agName = ap.name;
- for (int cAg = 0; cAg < ap.qty; cAg++) {
+ for (int cAg = 0; cAg < ap.getNbInstances(); cAg++) {
nbAg++;
String numberedAg = agName;
- if (ap.qty > 1) {
+ if (ap.getNbInstances() > 1) {
numberedAg += (cAg + 1);
// cannot add zeros before, it causes many compatibility problems and breaks dynamic creation
// numberedAg += String.format("%0"+String.valueOf(ap.qty).length()+"d", cAg + 1);
}
- logger.fine("Creating agent " + numberedAg + " (" + (cAg + 1) + "/" + ap.qty + ")");
+ logger.fine("Creating agent " + numberedAg + " (" + (cAg + 1) + "/" + ap.getNbInstances() + ")");
CentralisedAgArch agArch;
if (isPool) {
agArch = new CentralisedAgArchForPool();
Modified: trunk/src/jason/infra/centralised/StartNewAgentGUI.java
===================================================================
--- trunk/src/jason/infra/centralised/StartNewAgentGUI.java 2014-08-05 18:38:39 UTC (rev 1792)
+++ trunk/src/jason/infra/centralised/StartNewAgentGUI.java 2014-08-17 17:54:33 UTC (rev 1793)
@@ -116,9 +116,9 @@
if (ap.agClass != null) {
agClass = ap.agClass.getClassName();
}
- for (int i = 0; i < ap.qty; i++) {
+ for (int i = 0; i < ap.getNbInstances(); i++) {
String name = ap.name;
- if (ap.qty > 1) {
+ if (ap.getNbInstances() > 1) {
name = name + (i + 1);
}
// TODO: implements bb class
@@ -164,7 +164,7 @@
}
if (!nbAgs.getText().trim().equals("1")) {
try {
- ap.qty = Integer.parseInt(nbAgs.getText().trim());
+ ap.setNbInstances( Integer.parseInt(nbAgs.getText().trim()) );
} catch (Exception e) {
System.err.println("Number of hosts is not a number!");
}
Modified: trunk/src/jason/infra/jade/JadeMASLauncherAnt.java
===================================================================
--- trunk/src/jason/infra/jade/JadeMASLauncherAnt.java 2014-08-05 18:38:39 UTC (rev 1792)
+++ trunk/src/jason/infra/jade/JadeMASLauncherAnt.java 2014-08-17 17:54:33 UTC (rev 1793)
@@ -172,9 +172,9 @@
args += " -gui ";
}
for (AgentParameters ap: project.getAgents()) {
- for (int cAg = 0; cAg < ap.qty; cAg++) {
+ for (int cAg = 0; cAg < ap.getNbInstances(); cAg++) {
String numberedAg = ap.getAgName();
- if (ap.qty > 1)
+ if (ap.getNbInstances() > 1)
numberedAg += (cAg + 1);
if ( (container.equals("Main-Container") && ap.getHost() == null && allocator == null) ||
(ap.getHost() != null && ap.getHost().equals(container)) ||
Modified: trunk/src/jason/infra/jade/RunJadeMAS.java
===================================================================
--- trunk/src/jason/infra/jade/RunJadeMAS.java 2014-08-05 18:38:39 UTC (rev 1792)
+++ trunk/src/jason/infra/jade/RunJadeMAS.java 2014-08-17 17:54:33 UTC (rev 1793)
@@ -236,11 +236,11 @@
ap.addArchClass(MindInspectorAgArch.class.getName());
}
- for (int cAg = 0; cAg < ap.qty; cAg++) {
+ for (int cAg = 0; cAg < ap.getNbInstances(); cAg++) {
String numberedAg = agName;
- if (ap.qty > 1)
+ if (ap.getNbInstances() > 1)
numberedAg += (cAg + 1); //String.format("%0"+String.valueOf(ap.qty).length()+"d", cAg + 1);
- logger.info("Creating agent " + numberedAg + " (" + (cAg + 1) + "/" + ap.qty + ")");
+ logger.info("Creating agent " + numberedAg + " (" + (cAg + 1) + "/" + ap.getNbInstances() + ")");
AgentController ac = cc.createNewAgent(numberedAg, JadeAgArch.class.getName(), new Object[] { ap, isDebug(), getProject().getControlClass() != null });
ags.put(numberedAg,ac);
}
Modified: trunk/src/jason/mas2j/AgentParameters.java
===================================================================
--- trunk/src/jason/mas2j/AgentParameters.java 2014-08-05 18:38:39 UTC (rev 1792)
+++ trunk/src/jason/mas2j/AgentParameters.java 2014-08-17 17:54:33 UTC (rev 1793)
@@ -25,15 +25,30 @@
public File asSource = null;
public ClassParameters agClass = null;
public ClassParameters bbClass = null;
- private List<ClassParameters> archClasses = new ArrayList<ClassParameters>();
- public int qty = 1;
- private Map<String, String> options = null;
- private String host = null;
+ protected int nbInstances = 1;
+ protected Map<String, String> options = null;
+ protected List<ClassParameters> archClasses = new ArrayList<ClassParameters>();
+
+ protected String host = null;
public AgentParameters() {
setupDefault();
}
+ public AgentParameters copy() {
+ AgentParameters newap = new AgentParameters();
+ newap.name = this.name;
+ newap.asSource = new File(this.asSource.toString());
+ newap.agClass = this.agClass.copy();
+ newap.bbClass = this.bbClass.copy();
+ newap.nbInstances = this.nbInstances;
+ if (this.options != null)
+ newap.options = new HashMap<String, String>(this.options);
+ newap.archClasses = new ArrayList<ClassParameters>(this.archClasses);
+ newap.host = this.host;
+ return newap;
+ }
+
public String toString() {
return getAsInMASProject();
}
@@ -63,8 +78,15 @@
return bbClass;
}
+ public void setNbInstances(int i) {
+ nbInstances = i;
+ }
+ public int getNbInstances() {
+ return nbInstances;
+ }
+
public void setHost(String h) {
- if (h.startsWith("\""))
+ if (h != null && h.startsWith("\""))
host = h.substring(1,h.length()-1);
else
host = h;
@@ -156,8 +178,8 @@
if (bbClass != null && bbClass.getClassName().length() > 0 && !bbClass.getClassName().equals(DefaultBeliefBase.class.getName())) {
s.append("beliefBaseClass "+bbClass+" ");
}
- if (qty > 1) {
- s.append("#"+qty+" ");
+ if (nbInstances > 1) {
+ s.append("#"+nbInstances+" ");
}
if (host != null && host.length() > 0) {
s.append("at \""+host+"\"");
@@ -168,13 +190,17 @@
public Settings getAsSetts(boolean debug, boolean forceSync) {
Settings stts = new Settings();
if (options != null) {
- String s = ""; String v = "";
+ Map<String,Object> opt = new HashMap<String, Object>();
+ //String s = ""; String v = "";
for (String key: options.keySet()) {
- s += v + key + "=" + options.get(key);
- v = ",";
+ opt.put(key, options.get(key));
+ //s += v + key + "=" + options.get(key);
+ //v = ",";
}
- if (s.length() > 0) {
- stts.setOptions("["+s+"]");
+ if (!opt.isEmpty()) {
+ stts.setOptions(opt);
+ //if (s.length() > 0) {
+ // stts.setOptions("["+s+"]");
}
}
if (debug) {
Modified: trunk/src/jason/mas2j/ClassParameters.java
===================================================================
--- trunk/src/jason/mas2j/ClassParameters.java 2014-08-05 18:38:39 UTC (rev 1792)
+++ trunk/src/jason/mas2j/ClassParameters.java 2014-08-17 17:54:33 UTC (rev 1793)
@@ -32,6 +32,13 @@
}
}
+ public ClassParameters copy() {
+ ClassParameters newcp = new ClassParameters(this.className);
+ newcp.parameters = new ArrayList<String>(this.parameters);
+ newcp.host = this.host;
+ return newcp;
+ }
+
public void setClassName(String cn) {
className = cn;
}
Modified: trunk/src/jason/mas2j/parser/MAS2JavaParser.jcc
===================================================================
--- trunk/src/jason/mas2j/parser/MAS2JavaParser.jcc 2014-08-05 18:38:39 UTC (rev 1792)
+++ trunk/src/jason/mas2j/parser/MAS2JavaParser.jcc 2014-08-17 17:54:33 UTC (rev 1793)
@@ -242,7 +242,7 @@
|
<BBCLASS> ag.bbClass = classDef()
|
- "#" qty = <NUMBER> { ag.qty = Integer.parseInt(qty.image); }
+ "#" qty = <NUMBER> { ag.setNbInstances( Integer.parseInt(qty.image) ); }
|
<AT> host = <STRING> { ag.setHost(host.image); }
)*
Modified: trunk/src/jason/mas2j/parser/mas2j.java
===================================================================
--- trunk/src/jason/mas2j/parser/mas2j.java 2014-08-05 18:38:39 UTC (rev 1792)
+++ trunk/src/jason/mas2j/parser/mas2j.java 2014-08-17 17:54:33 UTC (rev 1793)
@@ -174,7 +174,7 @@
case 40:
jj_consume_token(40);
qty = jj_consume_token(NUMBER);
- ag.qty = Integer.parseInt(qty.image);
+ ag.setNbInstances( Integer.parseInt(qty.image) );
break;
case AT:
jj_consume_token(AT);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|