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

fixed export

parent 18487d9b
No related branches found
No related tags found
No related merge requests found
......@@ -81,6 +81,7 @@ public final class PnmlConstants {
// page properties
public static final String PAGE_TYPE_SERVER = "serverPrototype";
public static final String PAGE_TYPE_NODE = "nodePage";
public static final String PAGE_SERVER_INSTANCE_SUFFIX = "INSTANCE";
public static final String PAGE_SERVER_CONTAINER_SUFFIX = "CONTAINER";
......
......@@ -57,6 +57,18 @@ aspect Navigation {
eq Page.getObject().ContainingPage() = this;
eq PetriNet.getPage().ContainingPage() = null;
inh Set<Page> PnObject.ContainingPageTree();
eq Page.getObject().ContainingPageTree() {
Set<Page> res = this.ContainingPageTree();
res.add(this);
return res;
}
eq PetriNet.getPage().ContainingPageTree() {
Set<Page> res = new HashSet<Page>();
res.add(this.getPage(0));
return res;
}
syn boolean PnObject.isPageNode() = false;
eq Page.isPageNode() = true;
......
......@@ -161,7 +161,7 @@ aspect PnmlExporter{
assert rootPlace != null;
if (p_one.getRef().getId().equals(rootPlace.getId())) {
if(!convertedRefPlaceIDs.contains(p_one.getId())) {
System.out.println("Exporting Ref-Place (l1): " + p_one.getId());
//System.out.println("Exporting Ref-Place (l1): " + p_one.getId());
RefPlaceHLAPI rph = PrimitiveElementsConverter.convertRefPlaceToPnmlObject(p_one, rootPlace, null);
for (PageHLAPI pageHLAPI : convertedPages) {
if (pageHLAPI.getId().equals(p_one.ContainingPage().getId())) {
......@@ -181,7 +181,7 @@ aspect PnmlExporter{
for (RefPlaceHLAPI convRef : convertedRefPlaces) {
if (convRef.getId().equals(p_tree.getRef().getId())) {
if(!convertedRefPlaceIDs.contains(p_tree.getId())) {
System.out.println("Exporting Ref-Place (ln): " + p_tree.getId());
//System.out.println("Exporting Ref-Place (ln): " + p_tree.getId());
RefPlaceHLAPI rph = PrimitiveElementsConverter.convertRefPlaceToPnmlObject(p_tree, null, convRef);
for (PageHLAPI pageHLAPI : convertedPages) {
if (pageHLAPI.getId().equals(p_tree.ContainingPage().getId())) {
......@@ -208,14 +208,19 @@ aspect PnmlExporter{
Set<PlaceHLAPI> convertedPlaces = new HashSet<>();
for (Place p : petriNet.allPlaces()) {
//System.out.println("Place - " + p.getId() + "(" + p.ContainingPage().getId() + ")");
PlaceHLAPI convertedPlace = PrimitiveElementsConverter.convertPlaceToPnmlObject(p.asDinerosPlace());
for (PageHLAPI pageHLAPI : convertedPages) {
//System.out.println(" >> " + pageHLAPI.getId());
if (pageHLAPI.getId().equals(p.ContainingPage().getId())) {
assert convertedPlace != null;
//System.out.println("Exporting Place - FOUND PAGE: " + p.getId());
convertedPlace.setContainerPageHLAPI(pageHLAPI);
break;
}
}
// System.out.println("Exporting Place - ADDING: " + p.getId());
convertedPlaces.add(convertedPlace);
}
return convertedPlaces;
......@@ -230,6 +235,7 @@ aspect PnmlExporter{
for (PageHLAPI pageHLAPI : convertedPages) {
if (pageHLAPI.getId().equals(t.ContainingPage().getId())) {
assert convertedTransition != null;
//System.out.println("Exporting Transition - FOUND PAGE: " + t.getId());
convertedTransition.setContainerPageHLAPI(pageHLAPI);
break;
}
......@@ -362,33 +368,39 @@ aspect PnmlExporter{
return convertedArcs;
}
private static void buildPageSubTree(Page page, Set<PageHLAPI> convertedPages){
System.out.println("" + page.getId());
for(PnObject po : page.getObjects()){
if(po.isPageNode()){
// System.out.println(">> Check Page: " + po.getId() + " in page " + po.asPage().ContainingPage().getId());
for(PageHLAPI apiPage : convertedPages){
if(apiPage.getId().equals(po.asPage().ContainingPage().getId())){
// System.out.println("Exporting Page: " + po.getId());
convertedPages.add(ComplexElementsConverter.
convertNonTopLevelPageContainerToPnmlObject(po.asPage(), apiPage));
break;
}
}
}
}
for(PnObject po : page.getObjects()){
if(po.isPageNode()){
buildPageSubTree(po.asPage(), convertedPages);
}
}
}
private static Set<PageHLAPI> buildPageTrees(PetriNet petriNet, PetriNetHLAPI net) {
Set<PageHLAPI> convertedPages = new HashSet<>();
// Set<String> processedPageIds = new HashSet<>();
List<Page> topLevelPages = getTopLevelPages(petriNet);
List<Page> nonTopLevelPages = getNonTopLevelPages(petriNet);
for (Page page : topLevelPages) {
convertedPages.add(ComplexElementsConverter.convertTopLevelPageContainerToPnmlObject(page, net));
// processedPageIds.add(page.getId());
}
for (Page nonTopLevelPage : nonTopLevelPages) {
Page parent = nonTopLevelPage.ContainingPage();
for (PageHLAPI convertedPage : convertedPages) {
if (parent.getId().equals(convertedPage.getId())) {//&& !processedPageIds.contains(convertedPage.getId())) {
// processedPageIds.add(convertedPage.getId());
convertedPages.add(ComplexElementsConverter.convertNonTopLevelPageContainerToPnmlObject(nonTopLevelPage, convertedPage));
break;
}
}
// if ((processedPageIds.size() != nonTopLevelPages.size()) && (i == (nonTopLevelPages.size() - 1))) {
// i = -1;
// }
buildPageSubTree(page, convertedPages);
}
return convertedPages;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment