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

util methods for navigation, constants

parent 2c596476
No related branches found
No related tags found
No related merge requests found
......@@ -82,6 +82,8 @@ public final class PnmlConstants {
public static final String CHANNEL_PLACE_TYPE_CLIENT_REQ_KEY = "creq";
public static final String CHANNEL_PLACE_TYPE_SERVER_RES_KEY = "sres";
public static final String CHANNEL_PLACE_TYPE_SERVER_REQ_KEY = "sreq";
public static final String PORTS_CRES_KEY = "cResponsePlace";
public static final String PORTS_CREQ_KEY = "cRequestPlace";
// page properties
public static final String PAGE_TYPE_SERVER = "serverPrototype";
......
......@@ -63,6 +63,14 @@ aspect PnDistribution {
return ToolSpecificsParser.getChannelElementLimitById(this.getToolspecificList(), placeKey);
}
syn String PetriNet.getPortNameByPlaceId(String placeId){
return ToolSpecificsParser.getPortNameByPlaceId(this.getToolspecificList(), placeId);
}
syn String PetriNet.getServiceClientResponsePlaceId(String placeId){
return ToolSpecificsParser.getServiceClientResponsePlaceId(this.getToolspecificList(), placeId);
}
syn lazy CommunicatorInformation PetriNet.getCommunicatorInformation(Set<String> ignoredParts){
CommunicatorInformation cInfo = ToolSpecificsParser.getCommunicatorInformationFromToolSpecifics(this.getToolspecificList());
......
......@@ -48,6 +48,10 @@ aspect ToolSpecificsParser{
public static Integer getChannelElementLimitById(JastAddList<ToolInfo> toolInfos, String id){
if(id.contains("INSTANCE")){
id = id.split("-INSTANCE")[0];
}
HashMap<String, ArrayList<String>> res = new HashMap<String, ArrayList<String>>();
try {
......@@ -70,6 +74,56 @@ aspect ToolSpecificsParser{
return -1;
}
public static String getServiceClientResponsePlaceId(JastAddList<ToolInfo> toolInfos, String requestPlaceId){
if(requestPlaceId.contains("INSTANCE")){
requestPlaceId = requestPlaceId.split("-INSTANCE")[0];
}
try {
Document doc = parseToolSpecifics(toolInfos);
org.w3c.dom.NodeList portDefList = doc.getElementsByTagName(PnmlConstants.CHANNEL_PORT_KEY);
for(int i = 0; i < portDefList.getLength(); i++){
Element portElem = (Element) portDefList.item(i);
if(portElem.getTextContent().equals(requestPlaceId)){
return portElem.getAttribute(PnmlConstants.PORTS_CRES_KEY);
}
}
} catch(ParserConfigurationException | SAXException | IOException e){
logger.error(e.getMessage());
}
return null;
}
public static String getPortNameByPlaceId(JastAddList<ToolInfo> toolInfos, String id){
if(id.contains("INSTANCE")){
id = id.split("-INSTANCE")[0];
}
try {
Document doc = parseToolSpecifics(toolInfos);
org.w3c.dom.NodeList portDefList = doc.getElementsByTagName(PnmlConstants.CHANNEL_PORT_KEY);
for(int i = 0; i < portDefList.getLength(); i++){
Element portElem = (Element) portDefList.item(i);
if(portElem.getTextContent().equals(id)){
return portElem.getAttribute(PnmlConstants.CHANNEL_NAME_KEY);
}
}
} catch(ParserConfigurationException | SAXException | IOException e){
logger.error(e.getMessage());
}
return null;
}
public static HashMap<String, ArrayList<String>> getChannelElemensByKey(JastAddList<ToolInfo> toolInfos, String channelTypeKey){
HashMap<String, ArrayList<String>> res = new HashMap<String, ArrayList<String>>();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment