ANone issue: https://bugs.eclipse.org/bugs/show_bug.cgi?id=353647
Some other hopefully minor generation issues.
Please note that I've removed some comment generation for inner classes
that I think aren't needed and add space. If I've been too aggressive
feel
free
to
add
some of them back in.
diff --git a/org.eclipse.amp.amf/examples/org.eclipse.amp.amf.examples.sd/srcgen/sdl/SIR/sd/SIR.java b/org.eclipse.amp.amf/examples/org.eclipse.amp.amf.examples.sd/srcgen/sdl/SIR/sd/SIR.java
index fb7e764..6d22bdf 100644
--- a/org.eclipse.amp.amf/examples/org.eclipse.amp.amf.examples.sd/srcgen/sdl/SIR/sd/SIR.java
+++ b/org.eclipse.amp.amf/examples/org.eclipse.amp.amf.examples.sd/srcgen/sdl/SIR/sd/SIR.java
@@ -206,21 +206,7 @@
sIRAgentScape
.addStatCollector(new org.ascape.util.data.StatCollectorCond(
sIRAgentScape.getName() + " Population") {
-
- /**
- * <!-- begin-user-doc -->
- *
- * <!-- end-user-doc -->
- * @generated
- */
private static final long serialVersionUID = 1L;
-
- /**
- * <!-- begin-user-doc -->
- *
- * <!-- end-user-doc -->
- * @generated
- */
@SuppressWarnings("unused")
public final boolean meetsCondition(Object object) {
return true;
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.gen.ascape/src/metaabm/ascape/tmpl/ScapeAspect.xpt b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.gen.ascape/src/metaabm/ascape/tmpl/ScapeAspect.xpt
index a1f3486..99e5f62 100644
--- a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.gen.ascape/src/metaabm/ascape/tmpl/ScapeAspect.xpt
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.gen.ascape/src/metaabm/ascape/tmpl/ScapeAspect.xpt
@@ -223,10 +223,8 @@
«DEFINE Conditional (List[metaabm::act::AAct] path, Boolean inner) FOR AAct-»
«IF conditionForAscape()-»
- Conditional «selector().id()»Condition = new Conditional() {
- «EXPAND metaabm::tmpl::Java::GenerateComment»
- private static final long serialVersionUID = 6846144446402098985L;
- «EXPAND metaabm::tmpl::Java::GenerateComment»
+ Conditional «selector().id()»Condition = new Conditional() {
+ private static final long serialVersionUID = 1L;
public boolean meetsCondition(Object «selector().id()»Cell) {
«IF findFromHost()-»
«selector().id()»Cell = «converted(selector().id() + "Cell")»;
@@ -248,11 +246,11 @@
«DEFINE BeginQuerySingle (List[metaabm::act::AAct] path, Boolean inner) FOR AAct-»
«IF convert()-»
- Location «selector().id()»Location = «findAgentStatement(path)»;
+ final Location «selector().id()»Location = «findAgentStatement(path)»;
if («selector().id()»Location != null) {
- «selector().typeName()» «selector().id()» = («selector().typeName()») «converted(selector().id() + "Location")»;
+ final «selector().typeName()» «selector().id()» = («selector().typeName()») «converted(selector().id() + "Location")»;
«ELSE-»
- «selector().typeName()» «selector().id()» = («selector().typeName()») «findAgentStatement(path)»;
+ final «selector().typeName()» «selector().id()» = («selector().typeName()») «findAgentStatement(path)»;
«ENDIF-»
if («selector().id()» «metaType != ANone ? "!=" : "=="» null) {
«IF expression(path, inner) != "" && hasControl("here") && !selector().isRoot()-»
@@ -260,9 +258,12 @@
«ENDIF-»
«ENDDEFINE»
+«DEFINE BeginQuerySingle (List[metaabm::act::AAct] path, Boolean inner) FOR ANone-»
+«ENDDEFINE»
+
«DEFINE BeginQuery (List[metaabm::act::AAct] path, Boolean inner) FOR AAct-»
«IF findIsList()-»
- List «selector().id()»List = «findStatement(path)»;
+ final List «selector().id()»List = «findStatement(path)»;
for(Object next«selector().id().toFirstUpper()» : «selector().id()»List) {
«ENDIF-»
«EXPAND BeginQuerySingle(path, inner)-»
@@ -274,6 +275,9 @@
}
«ENDDEFINE»
+«DEFINE EndQuerySingle (List[metaabm::act::AAct] path, Boolean inner) FOR ANone-»
+«ENDDEFINE»
+
«DEFINE BeginSerial(List[AAct] path, Boolean inner) FOR AControl-»
«IF selector().isRoot() && selector().agent.isHost() && !controlFunctions({"available", "withinBoundaries"}).isEmpty-»
if («EXPAND metaabm::tmpl::Java::FunctionInnerBlock(path, false) FOREACH controlFunctions({"available", "withinBoundaries"}) SEPARATOR "&&"-») {
@@ -396,7 +400,6 @@
«DEFINE CreateScape(int stage) FOR IAct-»«ENDDEFINE»
«DEFINE StatBuilderBody(SAttribute outer, String mod) FOR SAttribute-»
- «EXPAND metaabm::tmpl::Java::GenerateComment»
public final «statSig()»(Object «parent().id()») {
return «mod» «expression((List[AAct]) {}, true)»;
}
@@ -419,9 +422,7 @@
«IF genStats() != "none"-»
«IF parent != null-»
«scape()».addStatCollector(new org.ascape.util.data.StatCollectorCond(«scape()».getName() + " Population") {
- «EXPAND metaabm::tmpl::Java::GenerateComment»
private static final long serialVersionUID = 1L;
- «EXPAND metaabm::tmpl::Java::GenerateComment»
@SuppressWarnings("unused")
public final boolean meetsCondition(Object object) {return true;}
});
@@ -431,7 +432,6 @@
«ENDDEFINE»
«DEFINE StatBuilderBody(SAttribute outer, String mod, String name) FOR SAttribute-»
«((SAgent) parent()).fieldName()».addStatCollector(new org.ascape.util.data.StatCollector«outer(outer).statCondTerm()»(«name») {
- «EXPAND metaabm::tmpl::Java::GenerateComment»
private static final long serialVersionUID = 1L;
«IF outer != this-»
«EXPAND StatBuilderBody (outer, mod) FOR outer-»
@@ -467,8 +467,7 @@
«DEFINE ChildBuilder FOR ARule-»
«reference.scape()».addRule(new Rule("«label»") {
- «EXPAND metaabm::tmpl::Java::GenerateComment»
- private static final long serialVersionUID = 6846144446402098981L;
+ private static final long serialVersionUID = 1L;
«EXPAND metaabm::tmpl::Java::GenerateComment»
public void execute(Agent a) {
((«reference.implementation.qualifiedName») a).«id()»();
@@ -477,7 +476,7 @@
«ENDDEFINE»
«DEFINE ChildBuilderProxy FOR ARule-»
«reference.fieldName()».addRule(new Rule("«label»") {
- private static final long serialVersionUID = 6846144446402098981L;
+ private static final long serialVersionUID = 1L;
public void execute(Agent a) {
((«this.typeName()») a.getScape()).«id()»();
}
@@ -490,8 +489,7 @@
«DEFINE ChildBuilder FOR AInitialize-»
«REM»Initialize is automatically invoked by default from framework«ENDREM»
«reference.scape()».addInitialRule(new Rule("«label»") {
- «EXPAND metaabm::tmpl::Java::GenerateComment»
- private static final long serialVersionUID = 6846144446402098982L;
+ private static final long serialVersionUID = 1L;
«EXPAND metaabm::tmpl::Java::GenerateComment»
public void execute(Agent a) {
((«reference.implementation.qualifiedName») a).«id()»();
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.gen.escape/src/metaabm/escape/tmpl/EscapeAspect.xpt b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.gen.escape/src/metaabm/escape/tmpl/EscapeAspect.xpt
index baa8326..4bf7055 100644
--- a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.gen.escape/src/metaabm/escape/tmpl/EscapeAspect.xpt
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.gen.escape/src/metaabm/escape/tmpl/EscapeAspect.xpt
@@ -238,10 +238,8 @@
final «owner.typeName()» «id()»Scape = new «owner.typeName()»();
«id()»Scape.setRunner(new NonGraphicRunner());
«typeName()» «id()» = new «typeName()»() {
- «EXPAND metaabm::tmpl::Java::GenerateComment»
public void requestUpdate() {
}
- «EXPAND metaabm::tmpl::Java::GenerateComment»
public «owner.typeName()» get«owner.typeName()»() {
return «id()»Scape;
}
@@ -249,7 +247,6 @@
«id()»Scape.add(«id()»);
«IF !isHost() && isDiscrete()-»
HostCell «id()»Host = new HostCell() {
- «EXPAND metaabm::tmpl::Java::GenerateComment»
public void requestUpdate() {
}
};
@@ -341,9 +338,7 @@
* @generated
*/
public final static DataPoint «dataPoint()» = new DataPointConcrete("«function.id().toFirstUpper()» «inputs.value.get(0).id()»") {
- «EXPAND metaabm::tmpl::Java::GenerateComment»
- private static final long serialVersionUID = 3755810443335739012L;
- «EXPAND metaabm::tmpl::Java::GenerateComment»
+ private static final long serialVersionUID = 3L;
public double getValue(Object o) {
«EXPAND metaabm::tmpl::Java::InnerEvaluation(allSources.select(e|e.selected == this.selected), false)-»
return ((«selected.agent.typeName()») o).«inputs.value.get(0).getterName()»();
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.gen/src/metaabm/tmpl/Java.xpt b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.gen/src/metaabm/tmpl/Java.xpt
index 2787d00..3a3e324 100644
--- a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.gen/src/metaabm/tmpl/Java.xpt
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.gen/src/metaabm/tmpl/Java.xpt
@@ -585,9 +585,6 @@
«EXPAND BeginSerialBlock (newPath, inner)-»
«EXPAND SerialBlock (newPath, inner, true)-»
«EXPAND EndSerialBlock (newPath, inner)-»
- «IF genNegate-»
- «EXPAND SerialBlock(expansionNegate(newPath), newPath, inner, false)-»
- «ENDIF-»
«ENDLET-»«ENDDEFINE»
«DEFINE BeginBlock(List[AAct] path, Boolean inner) FOR AAct-»
@@ -606,7 +603,14 @@
«DEFINE EndBlock(List[AAct] path, Boolean inner) FOR AAct-»
«IF expandSpatialBlock()-»
«IF queryFor()-»«EXPAND EndQueryBlock(path, inner)-»«ENDIF-»
- «ENDIF-»«ENDDEFINE»
+ «ENDIF-»
+ «IF !targets.typeSelect(ANone).isEmpty-»else {
+ «FOREACH targets.typeSelect(ANone) AS none-»
+ «EXPAND Block((List[AAct]) path.add(none), inner, true) FOR none-»
+ «ENDFOREACH-»
+ }
+ «ENDIF-»
+«ENDDEFINE»
«DEFINE EndSerialBlock(List[AAct] path, Boolean inner) FOR AAct-»«ENDDEFINE»
«DEFINE EndSerialBlock(List[AAct] path, Boolean inner) FOR AControl-»
«IF expressIf(path, inner)-»}«ENDIF-»
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.gen/src/metaabm/tmpl/infer.ext b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.gen/src/metaabm/tmpl/infer.ext
index 2c1403c..bd68317 100644
--- a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.gen/src/metaabm/tmpl/infer.ext
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.gen/src/metaabm/tmpl/infer.ext
@@ -219,9 +219,15 @@
cached List[AControl] spatial(Collection[AAct] candidates) :
candidates.select(e | e.isSpatialControl());
+cached List[AControl] outerConditional(Collection[AAct] candidates) :
+ candidates.select(e | e.isSpatialControl() || e.selected != e.rootSelected);
+
cached List[AControl] nonSpatial(List[AAct] candidates) :
candidates.select(e | !e.isSpatialControl());
+cached List[AControl] innerConditional(List[AAct] candidates) :
+ candidates.select(e | !e.isSpatialControl());
+
cached List[AControl] logic(List[AAct] candidates) :
candidates.typeSelect(ALogic);
@@ -251,6 +257,9 @@
cached Boolean expressIf(AAct act, List[AAct] path, Boolean inner) :
(act.expression(path, inner) != "") && act.targetStatements().size > 0 && act.controlCompound().spatial().isEmpty;
+
+cached Boolean expressIf(ANone act, List[AAct] path, Boolean inner) :
+ false;
cached int depth(AAct act, List[AAct] candidates) :
candidates.contains(act.sources) ? act.sources.intersect(candidates).collect( a | a.depth(candidates)).sortBy(e | e).last() : 0;
@@ -276,7 +285,7 @@
cached List[AAct] expansionOrder(List[AAct] candidates) :
candidates.sortBy(a | a.queryOrder(candidates));
-
+
cached Boolean expandSpatialBlock(AAct act) : false;
cached Boolean expandSpatialBlock(AControl act) :
@@ -294,26 +303,31 @@
cached Boolean expand(AControl act, List[AAct] path) :
path.contains(act.selected);// && (act.sources.typeSelect(ALogic).size == 0 || act.sources.select(a | a.selected == act.selected || a == act.selected).last() == path.last());
+cached Boolean expand(ANone act, List[AAct] path) :
+ false;
+
cached Boolean expand(ALogic act, List[AAct] path) :
path.contains(act.selected) && (act.sources.select(a | a.selected == act.selected || a == act.selected).last() == path.last());
cached Boolean conditionFor(AAct act) :
- !act.controlCompound().nonSpatial().typeSelect(AQuery).isEmpty;
+ !act.controlCompound().innerConditional().typeSelect(AQuery).isEmpty;
cached Boolean conditionFor(ASelect act) :
- !act.targets.nonSpatial().typeSelect(AQuery).isEmpty;
+ !act.targets.innerConditional().typeSelect(AQuery).isEmpty;
+
cached Boolean queryFor(AAct act) :
!act.selector().isRoot() || (!act.isRoot() && act.controlCompound().isEmpty);
-
+
cached List[AAct] expansionSerial(AAct act, List[AAct] path) :
act.targets.union(act.targets.controlLeafs().flatten()).typeReject(ANone).select(a | a.expand(path)).toList().expansionOrder();
cached Collection[AAct] typeReject(Collection[AAct] candidates, Object rejectType) :
candidates.select(e | e.metaType != rejectType);
-
-cached List[AAct] expansionNegate(AAct act, List[AAct] path) :
- act.targets.typeSelect(AControl).controlCompound().select(a | a.controlTerminal() && a.metaType == ANone && a.expand(path)).toList().expansionOrder();
+
+//cached List[AAct] expansionNegate(AAct act, List[AAct] path) :
+// act.targets.union(act.targets.controlLeafs().flatten()).select(a | a.expand(path)).typeSelect(ANone).toList().expansionOrder();
+// act.targets.typeSelect(AControl).controlCompound().select(a | a.controlTerminal() && a.metaType == ANone && a.expand(path)).toList().expansionOrder();
cached List[AAct] priorSelect(AAct act, ASelect sel) :
act.sources.collect(e | (e.selected == sel ? e : e.priorSelect(sel))).flatten();
@@ -328,8 +342,8 @@
//Set of target controls wth no further target controls
cached List[AControl] controlLeafs(AControl act) :
- act.targetControls().logic().size == 0 ? {act} : act.targetControls().controlLeafs().flatten();
-
+ act.targetControls().logic().typeReject(ANone).isEmpty ? {act} : act.targetControls().controlLeafs().flatten();
+
//Set of target controls wth no further target controls
cached List[AControl] controlLeafs(AAct act) :
{};
@@ -379,24 +393,6 @@
cached List[AControl] targetControls(AAct act) :
act.targets.typeSelect(AControl).inSelection(act.selected);
-cached List[ANone] nones(AAct act) :
- act.targets.typeSelect(ANone);
-
-cached List[AAct] nextNegate(AAct act) :
- act.nones().addAll(act.targets.without(act.nones()).nextNegate()).toSet().toList();
-
-cached List[AAct] nextControls(AAct act) :
- act.targetControls().select(t | t.targetStatements().size > 0).addAll(act.targetControls().nextControls()).toSet().toList();
-
-cached List[AAct] previousControls(AAct act) :
- act.sourceControls().select(t | t.sourceStatements().size > 0).addAll(act.sourceControls().previousControls()).toSet().toList();
-
-cached List[AAct] nextStatements(AAct act) :
- act.targetStatements().addAll(act.targetControls().nextStatements()).toSet().toList();
-
-cached List[AControl] previousStatements(AAct act) :
- act.sourceStatements().addAll(act.controls().flow().previousStatements()).toSet().toList();
-
cached List[AAct] allActs(SAgent agent) :
((AGroup) agent.rootActivity).members;