Skip to content
Snippets Groups Projects
Commit c8e3c91e authored by Sebastian Ebert's avatar Sebastian Ebert
Browse files

reduced model, working on base version 2

parent 1bcce42d
No related branches found
No related tags found
No related merge requests found
Showing
with 99 additions and 310 deletions
...@@ -30,7 +30,7 @@ public final class PnmlConstants { ...@@ -30,7 +30,7 @@ public final class PnmlConstants {
public static final String PLACE_TYPE_CONTINUOUS = "continuousPlaceType"; public static final String PLACE_TYPE_CONTINUOUS = "continuousPlaceType";
// general properties // general properties
public static final String LOCATION_KEY = "location"; public static final String NODE_KEY = "node";
public static final String TYPE_KEY = "type"; public static final String TYPE_KEY = "type";
// service related keys // service related keys
...@@ -44,11 +44,8 @@ public final class PnmlConstants { ...@@ -44,11 +44,8 @@ public final class PnmlConstants {
public static final String TOPIC_KEY = "topic"; public static final String TOPIC_KEY = "topic";
// bindings // bindings
public static final String INPUT_SIGNAL_BINDINGS_KEY = "inputsignalbindings";
public static final String OUTPUT_SIGNAL_BINDINGS_KEY = "outputsignalbindings";
public static final String INPUT_SIGNAL_BINDING_KEY = "inputsignalbinding"; public static final String INPUT_SIGNAL_BINDING_KEY = "inputsignalbinding";
public static final String OUTPUT_SIGNAL_BINDING_KEY = "outputsignalbinding"; public static final String INPUT_SIGNAL_SIGNAL_KEY = "signal";
public static final String TRANSITION_ID_KEY = "transitionID"; public static final String TRANSITION_ID_KEY = "transitionID";
public static final String INPUT_SIGNAL_ID_KEY = "inputsignalID"; public static final String INPUT_SIGNAL_ID_KEY = "inputsignalID";
...@@ -80,7 +77,6 @@ public final class PnmlConstants { ...@@ -80,7 +77,6 @@ public final class PnmlConstants {
// arc types // arc types
public static final String ARC_TYPE_KEY = "type"; public static final String ARC_TYPE_KEY = "type";
public static final String DEFAULT_ARC = "default"; public static final String DEFAULT_ARC = "default";
public static final String INHIBITOR_ARC = "inhibitor"; public static final String INHIBITOR_ARC = "inhibitor";
......
...@@ -108,11 +108,11 @@ aspect Navigation { ...@@ -108,11 +108,11 @@ aspect Navigation {
syn TransitionNode Node.asTransitionNode() = null; syn TransitionNode Node.asTransitionNode() = null;
eq TransitionNode.asTransitionNode() = this; eq TransitionNode.asTransitionNode() = this;
syn InputSignalTransition Transition.asInputSignalTransition() = null; syn DinerosTransition Transition.asDinerosTransition() = null;
eq InputSignalTransition.asInputSignalTransition() = this; eq DinerosTransition.asDinerosTransition() = this;
syn OutputSignalPlace Place.asOutputSignalPlace() = null; syn DinerosPlace Place.asDinerosPlace() = null;
eq OutputSignalPlace.asOutputSignalPlace() = this; eq DinerosPlace.asDinerosPlace() = this;
syn TopicTransitionInformation TransitionInformation.asTopicTransitionInformation() = null; syn TopicTransitionInformation TransitionInformation.asTopicTransitionInformation() = null;
eq TopicTransitionInformation.asTopicTransitionInformation() = this; eq TopicTransitionInformation.asTopicTransitionInformation() = this;
......
...@@ -9,7 +9,7 @@ package de.tudresden.inf.st.pnml.jastadd.parser; ...@@ -9,7 +9,7 @@ package de.tudresden.inf.st.pnml.jastadd.parser;
%typeof exp = "Exp"; %typeof exp = "Exp";
%goal goal; %goal goal;
goal = goal =
exp.exp {: return new Symbol(new Root(exp)); :} exp.exp {: return new Symbol(new InputSignalClause(exp)); :}
; ;
exp = exp =
exp.a AND.AND exp.b {: return new Symbol(new AndExp(a, b)); :} exp.a AND.AND exp.b {: return new Symbol(new AndExp(a, b)); :}
......
...@@ -7,7 +7,7 @@ aspect SignalExpressions { ...@@ -7,7 +7,7 @@ aspect SignalExpressions {
eq ASTNode.printExp() = ""; eq ASTNode.printExp() = "";
eq Root.printExp() { eq InputSignalClause.printExp() {
String result = ""; String result = "";
if(getExp() != null){ if(getExp() != null){
......
Root ::= Exp ; // TODO: REWORK FOR CONJUNCTIVE NORMALFORM
InputSignalClause ::= Exp ;
abstract Exp ; abstract Exp ;
abstract UnaryExp:Exp ::= Exp ; abstract UnaryExp:Exp ::= Exp ;
......
...@@ -3,43 +3,43 @@ import org.apache.commons.collections4.MultiValuedMap; ...@@ -3,43 +3,43 @@ import org.apache.commons.collections4.MultiValuedMap;
aspect PnDistribution { aspect PnDistribution {
syn TransitionInformation InputSignalTransition.getStaticTransitionInformation() { syn TransitionInformation DinerosTransition.getStaticTransitionInformation() {
if(!this.hasMutualTransitionInformation()){ if(!this.hasMutableTransitionInformation()){
TransitionInformation tInfo = ToolSpecificsParser.getTransitionInformation(this.getToolspecificList()); TransitionInformation tInfo = ToolSpecificsParser.getTransitionInformation(this.getToolspecificList());
return tInfo; return tInfo;
} }
return this.getMutualTransitionInformation(); return this.getMutableTransitionInformation();
} }
syn PlaceInformation OutputSignalPlace.getStaticPlaceInformation() { syn PlaceInformation DinerosPlace.getStaticPlaceInformation() {
if(!this.hasMutualPlaceInformation()){ if(!this.hasMutablePlaceInformation()){
PlaceInformation tInfo = ToolSpecificsParser.getPlaceInformationInformation(this.getToolspecificList()); PlaceInformation tInfo = ToolSpecificsParser.getPlaceInformationInformation(this.getToolspecificList());
return tInfo; return tInfo;
} }
return this.getMutualPlaceInformation(); return this.getMutablePlaceInformation();
} }
syn lazy String RefTransition.getLocation() { syn lazy String RefTransition.getNode() {
return ToolSpecificsParser.getLocationFromToolSpecifics(this.getToolspecificList()); return ToolSpecificsParser.getNodeFromToolSpecifics(this.getToolspecificList());
} }
syn lazy String RefTransition.getSubNet() { syn lazy String RefTransition.getSubNet() {
return ToolSpecificsParser.getSubnetFromToolSpecifics(this.getToolspecificList()); return ToolSpecificsParser.getSubnetFromToolSpecifics(this.getToolspecificList());
} }
syn lazy String RefPlace.getLocation() { syn lazy String RefPlace.getNode() {
return ToolSpecificsParser.getLocationFromToolSpecifics(this.getToolspecificList()); return ToolSpecificsParser.getNodeFromToolSpecifics(this.getToolspecificList());
} }
syn lazy String RefPlace.getSubNet() { syn lazy String RefPlace.getSubNet() {
return ToolSpecificsParser.getSubnetFromToolSpecifics(this.getToolspecificList()); return ToolSpecificsParser.getSubnetFromToolSpecifics(this.getToolspecificList());
} }
syn lazy Root InputSignalTransition.getInputSignalClause(){ syn lazy InputSignalClause DinerosTransition.getInputSignalClause(){
return ToolSpecificsParser.getClauseFromToolSpecifics(this.getToolspecificList()); return ToolSpecificsParser.getClauseFromToolSpecifics(this.getToolspecificList());
} }
......
...@@ -5,7 +5,7 @@ aspect Filtering { ...@@ -5,7 +5,7 @@ aspect Filtering {
java.util.Set<Place> s = new java.util.HashSet<>(); java.util.Set<Place> s = new java.util.HashSet<>();
for (Place p : places) { for (Place p : places) {
if(p.asOutputSignalPlace().getStaticPlaceInformation().getSubNet().equals(subnet)){ if(p.asDinerosPlace().getStaticPlaceInformation().getSubNet().equals(subnet)){
s.add(p); s.add(p);
} }
} }
...@@ -17,7 +17,7 @@ aspect Filtering { ...@@ -17,7 +17,7 @@ aspect Filtering {
java.util.Set<Transition> s = new java.util.HashSet<>(); java.util.Set<Transition> s = new java.util.HashSet<>();
for (Transition t : transitions) { for (Transition t : transitions) {
if(t.asInputSignalTransition().getStaticTransitionInformation().getSubNet().equals(subnet)){ if(t.asDinerosTransition().getStaticTransitionInformation().getSubNet().equals(subnet)){
s.add(t); s.add(t);
} }
} }
......
...@@ -197,11 +197,11 @@ aspect PrimitiveElementsConverter{ ...@@ -197,11 +197,11 @@ aspect PrimitiveElementsConverter{
} }
} }
syn fr.lip6.move.pnml.ptnet.hlapi.TransitionHLAPI InputSignalTransition.convertToPnmlObject(){ syn fr.lip6.move.pnml.ptnet.hlapi.TransitionHLAPI DinerosTransition.convertToPnmlObject(){
return PrimitiveElementsConverter.convertTransitionToPnmlObject(this); return PrimitiveElementsConverter.convertTransitionToPnmlObject(this);
} }
syn fr.lip6.move.pnml.ptnet.hlapi.PlaceHLAPI OutputSignalPlace.convertToPnmlObject(){ syn fr.lip6.move.pnml.ptnet.hlapi.PlaceHLAPI DinerosPlace.convertToPnmlObject(){
return PrimitiveElementsConverter.convertPlaceToPnmlObject(this); return PrimitiveElementsConverter.convertPlaceToPnmlObject(this);
} }
} }
\ No newline at end of file
aspect IoPnExtension{ aspect IoPnExtension{
inh Marking OutputSignalPlace.marking(); inh Marking DinerosPlace.marking();
eq PetriNetDoc.getChild().marking() = null; eq PetriNetDoc.getChild().marking() = null;
eq Marking.getPetriNet().marking() = this; eq Marking.getPetriNet().marking() = this;
eq OutputSignalPlace.getOutputSignalBinding().containingPlace() = this;
inh Place OutputSignalBinding.containingPlace();
eq Page.getObject().containingPlace() = null;
syn lazy JastAddList<InputSignalBinding> InputSignalTransition.getStaticInputSignalBindingList() {
if(this.getMutualInputSignalBindingList() == null || this.getMutualInputSignalBindingList().getNumChild() == 0){
JastAddList<InputSignalBinding> isBindings = PnmlSignalParser.parseInputSignalBindingDefinitions(this.getToolspecificList());
return isBindings;
}
return this.getMutualInputSignalBindingList();
}
syn lazy JastAddList<OutputSignalBinding> OutputSignalPlace.getOutputSignalBindingList() {
JastAddList<OutputSignalBinding> osBindings = PnmlSignalParser.parseOutputSignalBindingDefinitions(this.getToolspecificList());
return osBindings;
}
syn String OutputSignalPlace.getInitialOutputSignalValue(String id){
return PnmlSignalParser.getInitialOutputSignalValueBySignalID(this.getToolspecificList(), id);
}
syn String OutputSignalBinding.getOutputSignalValueForDefaultMarking(){
OutputSignalPlace osp = this.containingPlace().asOutputSignalPlace();
Marking marking = osp.marking();
MarkedPlace markedPlace = marking.resolvePlaceById(this.getPlaceID());
JastAddList<EqualityOutputMapping> eomList = this.getEqualityOMListNoTransform();
JastAddList<ThresholdOutputMapping> tomList = this.getThresholdOMListNoTransform();
JastAddList<RangeOutputMapping> romList = this.getRangeOMListNoTransform();
// eom
int result = -1;
for(EqualityOutputMapping eom : eomList){
if((eom.getValue() == markedPlace.getMarking()) && result == -1){
result = eom.getResult();
break;
}
}
// tom
if(result > -1){
for(ThresholdOutputMapping tom : tomList){
if(tom.getValue() <= markedPlace.getMarking()){
result = tom.getResult();
break;
}
}
}
// rom
if(result > -1){
for(RangeOutputMapping rom: romList){
if((rom.getLowerBound() <= markedPlace.getMarking()) && (rom.getUpperBound() >= markedPlace.getMarking())){
result = rom.getResult();
break;
}
}
}
// 0 (disabled Signal) is default
if(result == -1){
result = 0;
}
String output = String.valueOf(result) + "-" + this.getOutputSignalID();
return output;
}
} }
InputSignalBinding : PnObject ::= <TransitionID:String> <InputSignalID:String> <InputSignalValue:int>; // General Information
OutputSignalBinding : PnObject ::= <PlaceID:String> <OutputSignalID:String> EqualityOM:EqualityOutputMapping* ThresholdOM:ThresholdOutputMapping* RangeOM:RangeOutputMapping*; abstract PnObjectInformation ::= <Node:String> <SubNet:String> <Instance:String> <TraceInfo:String>;
PlaceInformation : PnObjectInformation;
abstract TransitionInformation ::= <Location:String> <Type:String> <InputLimit:java.lang.Integer> <OutputLimit:java.lang.Integer> <SubNet:String> <Instance:String> <TraceInfo:String>; // Ports
TopicTransitionInformation : TransitionInformation ::= <Topic:String>; TopicPort ::= <PlaceId:String> <Limit:int>;
ServiceTransitionInformation : TransitionInformation ::= <ServiceName:String>; SubscriberPort : TopicPort;
DefaultTransitionInformation : TransitionInformation; PublisherPort : TopicPort;
ServiceChannel ::= <RequestPort:String> <ResponsePort:String>;
PlaceInformation ::= <Location:String> <Type:String> <SubNet:String> <Instance:String> <TraceInfo:String>;
InputSignalTransition : Transition ::= /StaticInputSignalBinding:InputSignalBinding*/ MutualInputSignalBinding:InputSignalBinding* /StaticTransitionInformation:TransitionInformation/ [MutualTransitionInformation:TransitionInformation] /InputSignalClause:Root/; // Transition Information
OutputSignalPlace : Place ::= /OutputSignalBinding*/ /StaticPlaceInformation:PlaceInformation/ [MutualPlaceInformation:PlaceInformation]; InputSignalBinding ::= <InputSignalId:String>;
abstract TransitionInformation : PnObjectInformation ::= <Type:String> InputSignal:InputSignalBinding*;
TopicTransitionInformation : TransitionInformation ::= <Topic:String> SubscriberPorts:SubscriberPort* PublisherPorts:PublisherPort*;
ServiceTransitionInformation : TransitionInformation ::= <ServiceName:String> <ServerInput:String> <ServerOutput:String> ServiceChannels:ServiceChannel*;
DefaultTransitionInformation : TransitionInformation;
OutputMapping; // Elements
DinerosTransition : Transition ::= /StaticTransitionInformation:TransitionInformation/ [MutableTransitionInformation:TransitionInformation] /Clause:InputSignalClause/;
DinerosPlace : Place ::= /StaticPlaceInformation:PlaceInformation/ [MutablePlaceInformation:PlaceInformation];
EqualityOutputMapping : OutputMapping ::= <Value:java.lang.Integer> <Result:java.lang.Integer>;
ThresholdOutputMapping : OutputMapping ::= <Value:java.lang.Integer> <Result:java.lang.Integer>;
RangeOutputMapping : OutputMapping ::= <UpperBound:java.lang.Integer> <LowerBound:java.lang.Integer> <Result:java.lang.Integer>;
...@@ -110,7 +110,7 @@ aspect PnmlParserInternal{ ...@@ -110,7 +110,7 @@ aspect PnmlParserInternal{
} }
private Place getPlace(fr.lip6.move.pnml.ptnet.Place source) { private Place getPlace(fr.lip6.move.pnml.ptnet.Place source) {
Place result = new OutputSignalPlace(); Place result = new DinerosPlace();
fillPlace(source, result); fillPlace(source, result);
return result; return result;
} }
...@@ -144,7 +144,7 @@ aspect PnmlParserInternal{ ...@@ -144,7 +144,7 @@ aspect PnmlParserInternal{
} }
private Transition getTransition(fr.lip6.move.pnml.ptnet.Transition source) { private Transition getTransition(fr.lip6.move.pnml.ptnet.Transition source) {
Transition result = new InputSignalTransition(); Transition result = new DinerosTransition();
fillTransition(source, result); fillTransition(source, result);
return result; return result;
} }
......
...@@ -36,7 +36,7 @@ aspect PnmlSignalParser{ ...@@ -36,7 +36,7 @@ aspect PnmlSignalParser{
return null; return null;
} }
org.w3c.dom.NodeList isBindingDefList = doc.getElementsByTagName(PnmlConstants.INPUT_SIGNAL_BINDINGS_KEY); org.w3c.dom.NodeList isBindingDefList = doc.getElementsByTagName(PnmlConstants.INPUT_SIGNAL_BINDING_KEY);
JastAddList<InputSignalBinding> jastAddBindingList = new JastAddList<>(); JastAddList<InputSignalBinding> jastAddBindingList = new JastAddList<>();
if (isBindingDefList.getLength() > 0 && isBindingDefList.item(0) != null) { if (isBindingDefList.getLength() > 0 && isBindingDefList.item(0) != null) {
...@@ -48,29 +48,15 @@ aspect PnmlSignalParser{ ...@@ -48,29 +48,15 @@ aspect PnmlSignalParser{
Element isBindingsElement = (Element) isBindingsNode; Element isBindingsElement = (Element) isBindingsNode;
org.w3c.dom.NodeList isBindingNodes = isBindingsElement.getElementsByTagName(PnmlConstants.INPUT_SIGNAL_BINDING_KEY); org.w3c.dom.NodeList isBindingNodes = isBindingsElement.getElementsByTagName(PnmlConstants.INPUT_SIGNAL_SIGNAL_KEY);
for (int i = 0; i < isBindingNodes.getLength(); i++) { for (int i = 0; i < isBindingNodes.getLength(); i++) {
org.w3c.dom.Node isBindingNode = isBindingNodes.item(i); org.w3c.dom.Node isBindingNode = isBindingNodes.item(i);
Element isBindingElement = (Element) isBindingNode; Element isBindingElement = (Element) isBindingNode;
String tID = isBindingElement.getElementsByTagName(PnmlConstants.TRANSITION_ID_KEY).item(0).getTextContent();
String isID = isBindingElement.getElementsByTagName(PnmlConstants.INPUT_SIGNAL_ID_KEY).item(0).getTextContent();
int cVal = Integer.valueOf(isBindingElement.getElementsByTagName(PnmlConstants.CURRENT_VALUE_KEY).item(0).getTextContent());
// now detected by pnml-relast-validator
/*
if(cVal != 1 && cVal != 0){
logger.error("[PARSER] Initial value of input signal " + isID + " is not value. Falling back to 0.");
cVal = 0;
}
*/
InputSignalBinding isb = new InputSignalBinding(); InputSignalBinding isb = new InputSignalBinding();
isb.setInputSignalValue(cVal); isb.setInputSignalId(isBindingElement.getTextContent());
isb.setInputSignalID(isID);
isb.setTransitionID(tID);
jastAddBindingList.add(isb); jastAddBindingList.add(isb);
} }
...@@ -79,126 +65,6 @@ aspect PnmlSignalParser{ ...@@ -79,126 +65,6 @@ aspect PnmlSignalParser{
return jastAddBindingList; return jastAddBindingList;
} }
public static JastAddList<OutputSignalBinding> parseOutputSignalBindingDefinitions(JastAddList<ToolInfo> toolInfos) {
try {
Document doc = parseToolSpecifics(toolInfos);
return parseOutputSignalBindingDefinitionsInternal(doc);
} catch (ParserConfigurationException | SAXException | IOException e) {
logger.error(e.getMessage());
}
return null;
}
public static String getInitialOutputSignalValueBySignalID(JastAddList<ToolInfo> toolInfos, String id) {
try {
Document doc = parseToolSpecifics(toolInfos);
org.w3c.dom.NodeList osBindingDefList = doc.getElementsByTagName(PnmlConstants.OUTPUT_SIGNAL_BINDINGS_KEY);
if (osBindingDefList.getLength() > 0 && osBindingDefList.item(0) != null) {
org.w3c.dom.Node osBindingsNode = osBindingDefList.item(0);
if (osBindingsNode.getNodeType() == org.w3c.dom.Node.ELEMENT_NODE) {
Element osBindingsElement = (Element) osBindingsNode;
org.w3c.dom.NodeList osBindingNodes = osBindingsElement.getElementsByTagName(PnmlConstants.OUTPUT_SIGNAL_BINDING_KEY);
for (int i = 0; i < osBindingNodes.getLength(); i++) {
org.w3c.dom.Node osBindingNode = osBindingNodes.item(i);
Element osBindingElement = (Element) osBindingNode;
String osID = osBindingElement.getElementsByTagName(PnmlConstants.OUTPUT_SIGNAL_ID_KEY).item(0).getTextContent();
if (osID.equals(id)) {
return String.valueOf(osBindingElement.getElementsByTagName(PnmlConstants.CURRENT_VALUE_KEY).item(0).getTextContent());
}
}
}
}
} catch (ParserConfigurationException | SAXException | IOException e) {
logger.error(e.getMessage());
}
return null;
}
private static JastAddList<OutputSignalBinding> parseOutputSignalBindingDefinitionsInternal(Document doc) {
org.w3c.dom.NodeList osBindingDefList = doc.getElementsByTagName(PnmlConstants.OUTPUT_SIGNAL_BINDINGS_KEY);
JastAddList<OutputSignalBinding> jastAddBindingList = new JastAddList<>();
if (osBindingDefList.getLength() > 0 && osBindingDefList.item(0) != null) {
org.w3c.dom.Node osBindingsNode = osBindingDefList.item(0);
if (osBindingsNode.getNodeType() == org.w3c.dom.Node.ELEMENT_NODE) {
Element osBindingsElement = (Element) osBindingsNode;
org.w3c.dom.NodeList osBindingNodes = osBindingsElement.getElementsByTagName(PnmlConstants.OUTPUT_SIGNAL_BINDING_KEY);
for (int i = 0; i < osBindingNodes.getLength(); i++) {
org.w3c.dom.Node osBindingNode = osBindingNodes.item(i);
Element osBindingElement = (Element) osBindingNode;
String pID = osBindingElement.getElementsByTagName(PnmlConstants.PLACE_ID_KEY).item(0).getTextContent();
String osID = osBindingElement.getElementsByTagName(PnmlConstants.OUTPUT_SIGNAL_ID_KEY).item(0).getTextContent();
String cVal = String.valueOf(osBindingElement.getElementsByTagName(PnmlConstants.CURRENT_VALUE_KEY).item(0).getTextContent());
OutputSignalBinding osb = new OutputSignalBinding();
parseOutputMappings(osBindingElement, pID, osID, cVal, osb);
jastAddBindingList.add(osb);
}
}
}
return jastAddBindingList;
}
private static void parseOutputMappings(Element osBindingElement, String pID, String osID, String cVal, OutputSignalBinding osb) {
//osb.setCurrentValue(cVal);
osb.setOutputSignalID(osID);
osb.setPlaceID(pID);
org.w3c.dom.NodeList eqMappingNodeList = osBindingElement.getElementsByTagName(PnmlConstants.EQUAL_OS_KEY);
org.w3c.dom.NodeList thresholdMappingNodeList = osBindingElement.getElementsByTagName(PnmlConstants.THRESHOLD_KEY);
org.w3c.dom.NodeList rangeMappingNodeList = osBindingElement.getElementsByTagName(PnmlConstants.RANGE_OS_KEY);
for (int j = 0; j < eqMappingNodeList.getLength(); j++) {
Element eqElement = (Element) eqMappingNodeList.item(j);
EqualityOutputMapping eom = new EqualityOutputMapping();
eom.setValue(Integer.valueOf(eqElement.getElementsByTagName(PnmlConstants.VALUE_KEY).item(0).getTextContent()));
eom.setResult(Integer.valueOf(eqElement.getElementsByTagName(PnmlConstants.RESULT_KEY).item(0).getTextContent()));
osb.addEqualityOM(eom);
}
for (int k = 0; k < thresholdMappingNodeList.getLength(); k++) {
Element eqElement = (Element) thresholdMappingNodeList.item(k);
ThresholdOutputMapping tom = new ThresholdOutputMapping();
tom.setValue(Integer.valueOf(eqElement.getElementsByTagName(PnmlConstants.VALUE_KEY).item(0).getTextContent()));
tom.setResult(Integer.valueOf(eqElement.getElementsByTagName(PnmlConstants.RESULT_KEY).item(0).getTextContent()));
osb.addThresholdOM(tom);
}
for (int l = 0; l < rangeMappingNodeList.getLength(); l++) {
Element eqElement = (Element) rangeMappingNodeList.item(l);
RangeOutputMapping rom = new RangeOutputMapping();
rom.setLowerBound(Integer.valueOf(eqElement.getElementsByTagName(PnmlConstants.LOWER_BOUND_KEY).item(0).getTextContent()));
rom.setUpperBound(Integer.valueOf(eqElement.getElementsByTagName(PnmlConstants.UPPER_BOUND_KEY).item(0).getTextContent()));
rom.setResult(Integer.valueOf(eqElement.getElementsByTagName(PnmlConstants.RESULT_KEY).item(0).getTextContent()));
osb.addRangeOM(rom);
}
}
private static Document parseToolSpecifics(JastAddList<ToolInfo> toolInfos) throws ParserConfigurationException, SAXException, IOException { private static Document parseToolSpecifics(JastAddList<ToolInfo> toolInfos) throws ParserConfigurationException, SAXException, IOException {
if (toolInfos == null || toolInfos.getNumChild() == 0) { if (toolInfos == null || toolInfos.getNumChild() == 0) {
......
...@@ -19,7 +19,7 @@ aspect ToolSpecificsParser{ ...@@ -19,7 +19,7 @@ aspect ToolSpecificsParser{
private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(ToolSpecificsParser.class); private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(ToolSpecificsParser.class);
public static Root getClauseFromToolSpecifics(JastAddList<ToolInfo> toolInfos) { public static InputSignalClause getClauseFromToolSpecifics(JastAddList<ToolInfo> toolInfos) {
if (toolInfos.getNumChild() > 0) { if (toolInfos.getNumChild() > 0) {
try { try {
...@@ -31,7 +31,7 @@ aspect ToolSpecificsParser{ ...@@ -31,7 +31,7 @@ aspect ToolSpecificsParser{
StringReader reader = new StringReader(content); StringReader reader = new StringReader(content);
ExpressionScanner scanner = new ExpressionScanner(reader); ExpressionScanner scanner = new ExpressionScanner(reader);
ExpressionParser parser = new ExpressionParser(); ExpressionParser parser = new ExpressionParser();
return ((Root) parser.parse(scanner)); return ((InputSignalClause) parser.parse(scanner));
} }
} catch (ParserConfigurationException | SAXException | IOException | beaver.Parser.Exception e) { } catch (ParserConfigurationException | SAXException | IOException | beaver.Parser.Exception e) {
...@@ -39,7 +39,7 @@ aspect ToolSpecificsParser{ ...@@ -39,7 +39,7 @@ aspect ToolSpecificsParser{
} }
} }
return new Root(); return new InputSignalClause();
} }
public static CommunicatorInformation getCommunicatorInformationFromToolSpecifics(JastAddList<ToolInfo> toolInfos) { public static CommunicatorInformation getCommunicatorInformationFromToolSpecifics(JastAddList<ToolInfo> toolInfos) {
...@@ -85,12 +85,12 @@ aspect ToolSpecificsParser{ ...@@ -85,12 +85,12 @@ aspect ToolSpecificsParser{
return ci; return ci;
} }
public static String getLocationFromToolSpecifics(JastAddList<ToolInfo> toolInfos) { public static String getNodeFromToolSpecifics(JastAddList<ToolInfo> toolInfos) {
if (toolInfos.getNumChild() > 0) { if (toolInfos.getNumChild() > 0) {
try { try {
Document doc = parseToolSpecifics(toolInfos); Document doc = parseToolSpecifics(toolInfos);
org.w3c.dom.NodeList locationList = doc.getElementsByTagName(PnmlConstants.LOCATION_KEY); org.w3c.dom.NodeList locationList = doc.getElementsByTagName(PnmlConstants.NODE_KEY);
if (locationList.getLength() > 0 && locationList.item(0) != null) { if (locationList.getLength() > 0 && locationList.item(0) != null) {
return locationList.item(0).getTextContent(); return locationList.item(0).getTextContent();
......
...@@ -23,7 +23,7 @@ aspect PnmlSlicer { ...@@ -23,7 +23,7 @@ aspect PnmlSlicer {
} }
for (Place p : petriNet.allPlaces()) { for (Place p : petriNet.allPlaces()) {
if (!p.asOutputSignalPlace().getStaticPlaceInformation().getSubNet().equals(subnet)) { if (!p.asDinerosPlace().getStaticPlaceInformation().getSubNet().equals(subnet)) {
p.removeSelf(); p.removeSelf();
} }
} }
...@@ -35,7 +35,7 @@ aspect PnmlSlicer { ...@@ -35,7 +35,7 @@ aspect PnmlSlicer {
} }
for (Transition t : petriNet.allTransitions()) { for (Transition t : petriNet.allTransitions()) {
if (!t.asInputSignalTransition().getStaticTransitionInformation().getSubNet().equals(subnet)) { if (!t.asDinerosTransition().getStaticTransitionInformation().getSubNet().equals(subnet)) {
t.removeSelf(); t.removeSelf();
} }
} }
...@@ -81,7 +81,7 @@ aspect PnmlSlicer { ...@@ -81,7 +81,7 @@ aspect PnmlSlicer {
return false; return false;
} }
return pn.getPlaceFromPlaceNode(p).asOutputSignalPlace().getStaticPlaceInformation().getSubNet().equals(subnet); return pn.getPlaceFromPlaceNode(p).asDinerosPlace().getStaticPlaceInformation().getSubNet().equals(subnet);
} }
private static boolean isTransitionInSubnet(TransitionNode t, PetriNet pn, String subnet) { private static boolean isTransitionInSubnet(TransitionNode t, PetriNet pn, String subnet) {
...@@ -90,7 +90,7 @@ aspect PnmlSlicer { ...@@ -90,7 +90,7 @@ aspect PnmlSlicer {
return false; return false;
} }
return pn.getTransitionFromTransitionNode(t).asInputSignalTransition().getStaticTransitionInformation().getSubNet().equals(subnet); return pn.getTransitionFromTransitionNode(t).asDinerosTransition().getStaticTransitionInformation().getSubNet().equals(subnet);
} }
} }
} }
\ No newline at end of file
...@@ -5,5 +5,10 @@ public class Main { ...@@ -5,5 +5,10 @@ public class Main {
public static void main(String[] args) { public static void main(String[] args) {
// Nothing to to here // Nothing to to here
// TODO: update clauses
// TODO: fix parsing
// TODO: fix export
// TODO: read input signal defs (net level)
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment