From 3bd1297d496f50de98de03ae0c7b437ff3fc5265 Mon Sep 17 00:00:00 2001
From: rschoene <rene.schoene@tu-dresden.de>
Date: Wed, 15 Jun 2022 16:42:23 +0200
Subject: [PATCH] update

- remove CanReachObjectOfInterestWrapper
---
 .../src/main/jastadd/WorldModelB.connect      |  8 +++----
 .../src/main/jastadd/WorldModelB.jadd         | 20 +++++++++---------
 .../src/main/jastadd/WorldModelB.relast       |  4 +---
 .../de/tudresden/inf/st/placeB/MainB.java     |  4 ++--
 .../tudresden/inf/st/placeB/SimpleMainB.java  |  4 ++--
 .../de/tudresden/inf/st/placeB/UtilB.java     | 21 ++++++++-----------
 6 files changed, 28 insertions(+), 33 deletions(-)

diff --git a/ros3rag.placeB/src/main/jastadd/WorldModelB.connect b/ros3rag.placeB/src/main/jastadd/WorldModelB.connect
index 302541d..3d06500 100644
--- a/ros3rag.placeB/src/main/jastadd/WorldModelB.connect
+++ b/ros3rag.placeB/src/main/jastadd/WorldModelB.connect
@@ -1,7 +1,7 @@
 // --- receiving ---
 receive WorldModelB.MyScene using ParseScene, ConvertScene ;
 receive indexed WorldModelB.OtherScene ;
-receive Robot.CanReachObjectOfInterestWrapper using ParseReachability, ConvertReachability ;
+receive Robot.CanReachObjectOfInterest using ParseReachability, ConvertReachability ;
 receive Robot.OwnedCollaborationZoneNames using ConfigChangeCommandCheckForOwnedCollaborationZone ;
 receive Robot.OccupiedCollaborationZoneNames using CommandCheckForOccupiedCollaborationZone ;
 receive Robot.CurrentPosition ;
@@ -11,11 +11,11 @@ ParseReachability maps byte[] bytes to de.tudresden.inf.st.ceti.Reachability {:
   return de.tudresden.inf.st.ceti.Reachability.parseFrom(bytes);
 :}
 
-ConvertReachability maps de.tudresden.inf.st.ceti.Reachability r to CanReachObjectOfInterestWrapper {:
-  var result = new CanReachObjectOfInterestWrapper();
+ConvertReachability maps de.tudresden.inf.st.ceti.Reachability r to JastAddList<CanReachObjectOfInterest> {:
+  var result = new JastAddList<CanReachObjectOfInterest>();
   for (var objReach : r.getObjectsList()) {
     if (objReach.getReachable()) {
-      result.addCanReachObjectOfInterest(new CanReachObjectOfInterest().setObjectName(objReach.getIdObject()));
+      result.addChild(new CanReachObjectOfInterest().setObjectName(objReach.getIdObject()));
     }
   }
   return result;
diff --git a/ros3rag.placeB/src/main/jastadd/WorldModelB.jadd b/ros3rag.placeB/src/main/jastadd/WorldModelB.jadd
index 334c172..5b01bc7 100644
--- a/ros3rag.placeB/src/main/jastadd/WorldModelB.jadd
+++ b/ros3rag.placeB/src/main/jastadd/WorldModelB.jadd
@@ -309,15 +309,15 @@ aspect Computation {
     return errorNoExecutableOperation();
   }
 
-  //--- canReach ---
-  syn boolean Robot.canReach(String objectName) {
-    for (CanReachObjectOfInterest canReachObj : getCanReachObjectOfInterestWrapper().getCanReachObjectOfInterestList()) {
-      if (canReachObj.getObjectName().equals(objectName)) {
-        return true;
-      }
-    }
-    return false;
-  }
+//  //--- canReach --- | TODO not used
+//  syn boolean Robot.canReach(String objectName) {
+//    for (CanReachObjectOfInterest canReachObj : getCanReachObjectOfInterestList()) {
+//      if (canReachObj.getObjectName().equals(objectName)) {
+//        return true;
+//      }
+//    }
+//    return false;
+//  }
 
   //--- reachableObjects ---
   syn List<ObjectOfInterest> Robot.reachableObjects() {
@@ -325,7 +325,7 @@ aspect Computation {
       return Collections.emptyList();
     }
     List<ObjectOfInterest> result = new ArrayList<>();
-    for (CanReachObjectOfInterest canReachObj : getCanReachObjectOfInterestWrapper().getCanReachObjectOfInterestList()) {
+    for (CanReachObjectOfInterest canReachObj : getCanReachObjectOfInterestList()) {
       result.add(worldModelB().getMyScene().resolveObjectOfInterest(canReachObj.getObjectName()));
     }
     return result;
diff --git a/ros3rag.placeB/src/main/jastadd/WorldModelB.relast b/ros3rag.placeB/src/main/jastadd/WorldModelB.relast
index a0d205c..417bff8 100644
--- a/ros3rag.placeB/src/main/jastadd/WorldModelB.relast
+++ b/ros3rag.placeB/src/main/jastadd/WorldModelB.relast
@@ -1,12 +1,10 @@
 WorldModelB ::= Region* Robot* [MyScene:Scene] OtherScene:LogicalScene* ExecutedOperation:Operation* /NextOperation:Operation/ ;
 
-// FIXME inline CanReachObjectOfInterestWrapper
-Robot ::= <Name:String> CanReachObjectOfInterestWrapper <OwnedCollaborationZoneNames> <OccupiedCollaborationZoneNames> <CurrentPosition> ;
+Robot ::= <Name:String> CanReachObjectOfInterest* <OwnedCollaborationZoneNames> <OccupiedCollaborationZoneNames> <CurrentPosition> ;
 // relations into nodes received by RagConnect are not allowed
 //rel Robot.OwnedCollaborationZone* <-> CollaborationZone.Owner? ;
 //rel Robot.OccupiedCollaborationZone? <-> CollaborationZone.Occupient? ;
 
-CanReachObjectOfInterestWrapper ::= CanReachObjectOfInterest* ;
 CanReachObjectOfInterest ::= <ObjectName:String> ;
 
 abstract Difference ;
diff --git a/ros3rag.placeB/src/main/java/de/tudresden/inf/st/placeB/MainB.java b/ros3rag.placeB/src/main/java/de/tudresden/inf/st/placeB/MainB.java
index 9df4a09..ef2ab53 100644
--- a/ros3rag.placeB/src/main/java/de/tudresden/inf/st/placeB/MainB.java
+++ b/ros3rag.placeB/src/main/java/de/tudresden/inf/st/placeB/MainB.java
@@ -122,8 +122,8 @@ public class MainB extends SharedMainParts<MqttHandler, WorldModelB> {
       Robot robot = UtilB.createRobot(robotConfiguration.name);
       model.addRobot(robot);
 
-      CanReachObjectOfInterestWrapper reachabilityWrapper = UtilB.convertToReachability(robotConfiguration.reachableLocations);
-      robot.setCanReachObjectOfInterestWrapper(reachabilityWrapper);
+      JastAddList<CanReachObjectOfInterest> reachabilityList = UtilB.convertToReachability(robotConfiguration.reachableLocations);
+      robot.setCanReachObjectOfInterestList(reachabilityList);
     }
   }
 
diff --git a/ros3rag.placeB/src/main/java/de/tudresden/inf/st/placeB/SimpleMainB.java b/ros3rag.placeB/src/main/java/de/tudresden/inf/st/placeB/SimpleMainB.java
index 926804a..ff99e99 100644
--- a/ros3rag.placeB/src/main/java/de/tudresden/inf/st/placeB/SimpleMainB.java
+++ b/ros3rag.placeB/src/main/java/de/tudresden/inf/st/placeB/SimpleMainB.java
@@ -133,8 +133,8 @@ public class SimpleMainB {
       Robot robot = UtilB.createRobot(robotConfiguration.name);
       model.addRobot(robot);
 
-      CanReachObjectOfInterestWrapper reachabilityWrapper = UtilB.convertToReachability(robotConfiguration.reachableLocations);
-      robot.setCanReachObjectOfInterestWrapper(reachabilityWrapper);
+      JastAddList<CanReachObjectOfInterest> reachabilityList = UtilB.convertToReachability(robotConfiguration.reachableLocations);
+      robot.setCanReachObjectOfInterestList(reachabilityList);
     }
 
     Runnable close = () -> {
diff --git a/ros3rag.placeB/src/main/java/de/tudresden/inf/st/placeB/UtilB.java b/ros3rag.placeB/src/main/java/de/tudresden/inf/st/placeB/UtilB.java
index e66baba..fffa2f6 100644
--- a/ros3rag.placeB/src/main/java/de/tudresden/inf/st/placeB/UtilB.java
+++ b/ros3rag.placeB/src/main/java/de/tudresden/inf/st/placeB/UtilB.java
@@ -38,12 +38,10 @@ public class UtilB {
 
   static Robot createRobot(String name, String... canReach) {
     Robot result = new Robot().setName(name).setCurrentPosition("unknown");
-    CanReachObjectOfInterestWrapper wrapper = new CanReachObjectOfInterestWrapper();
 
     for (String canReachName : canReach) {
-      wrapper.addCanReachObjectOfInterest(new CanReachObjectOfInterest(canReachName));
+      result.addCanReachObjectOfInterest(new CanReachObjectOfInterest(canReachName));
     }
-    result.setCanReachObjectOfInterestWrapper(wrapper);
     return result;
   }
 
@@ -103,9 +101,8 @@ public class UtilB {
             robot -> robot.getName()
                 + "(" + (robot.isBusy() ? "busy" : "free")
                 + ", canReach: "
-                + robot.getCanReachObjectOfInterestWrapper()
-                .getCanReachObjectOfInterestList()
-                .prettyPrint(canReachObj -> resolveObjName(model, canReachObj.getObjectName()))
+                + robot.getCanReachObjectOfInterestList().prettyPrint(
+                    canReachObj -> resolveObjName(model, canReachObj.getObjectName()))
                 + ")"))
         .append("\n");
     if (detailed) {
@@ -144,9 +141,9 @@ public class UtilB {
     return new ExposingASTNode().exposed_apply_ConvertScene(scene);
   }
 
-  static CanReachObjectOfInterestWrapper convertToReachability(List<String> reachableLocations) {
-    CanReachObjectOfInterestWrapper result = new CanReachObjectOfInterestWrapper();
-    reachableLocations.forEach(location -> result.addCanReachObjectOfInterest(new CanReachObjectOfInterest(location)));
+  static JastAddList<CanReachObjectOfInterest> convertToReachability(List<String> reachableLocations) {
+    JastAddList<CanReachObjectOfInterest> result = new JastAddList<>();
+    reachableLocations.forEach(location -> result.addChild(new CanReachObjectOfInterest(location)));
     return result;
   }
 
@@ -189,9 +186,9 @@ public class UtilB {
     public Scene exposed_apply_ConvertScene(de.tudresden.inf.st.ceti.Scene pbScene) throws Exception {
       return _ragconnect__apply_ConvertScene(pbScene);
     }
-    public CanReachObjectOfInterestWrapper exposed_apply_ConvertReachability(de.tudresden.inf.st.ceti.Reachability r) throws Exception {
-      return _ragconnect__apply_ConvertReachability(r);
-    }
+//    public CanReachObjectOfInterestWrapper exposed_apply_ConvertReachability(de.tudresden.inf.st.ceti.Reachability r) throws Exception {
+//      return _ragconnect__apply_ConvertReachability(r);
+//    }
   }
 
 }
-- 
GitLab