Change the way of fetching data from datastore and write user's intents into datastor...
[nemo.git] / nemo-impl / src / main / java / org / opendaylight / nemo / user / vnspacemanager / languagestyle / NEMOParse / NEMOparser.java
index 11660a5d86e093d4c883ddc7592721306fc84f7c..d78d0c8e4225c79a3b5c220391eacb25b1a49a6f 100644 (file)
@@ -7,7 +7,6 @@
  */\r
 /* Generated By:JavaCC: Do not edit this line. NEMOparser.java */\r
 package org.opendaylight.nemo.user.vnspacemanager.languagestyle.NEMOParse;\r
-\r
 import org.opendaylight.nemo.user.vnspacemanager.languagestyle.updateintentlang.UpdateNodeLang;\r
 import org.opendaylight.nemo.user.vnspacemanager.languagestyle.updateintentlang.UpdateConnectionLang;\r
 import org.opendaylight.nemo.user.vnspacemanager.languagestyle.updateintentlang.UpdateFlowLang;\r
@@ -18,11 +17,11 @@ import org.opendaylight.nemo.user.vnspacemanager.languagestyle.deleteintentlang.
 import org.opendaylight.nemo.user.vnspacemanager.languagestyle.deleteintentlang.DeleteOperationLang;\r
 import org.opendaylight.nemo.user.vnspacemanager.languagestyle.Query;\r
 import org.opendaylight.nemo.user.vnspacemanager.languagestyle.NEMOConstants;\r
+import org.opendaylight.nemo.user.vnspacemanager.languagestyle.updateintentlang.UpdateTemplateDefinitionLang;\r
 \r
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;\r
 import org.opendaylight.nemo.user.tenantmanager.TenantManage;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserId;\r
-\r
 import java.util.LinkedHashMap;\r
 import java.util.List;\r
 import java.util.ArrayList;\r
@@ -104,6 +103,10 @@ public class NEMOparser implements NEMOparserConstants {
       jj_consume_token(OPERATION);\r
           {if (true) return UpdateOperation(userId,dataBroker,tenantManage);}\r
       break;\r
+    case NODEMODEL:\r
+      jj_consume_token(NODEMODEL);\r
+          {if (true) return NodeModel(userId,dataBroker,tenantManage);}\r
+      break;\r
     default:\r
       jj_la1[2] = jj_gen;\r
       jj_consume_token(-1);\r
@@ -139,26 +142,23 @@ public class NEMOparser implements NEMOparserConstants {
   }\r
 \r
   static final public String UpdateNode(UserId userId, DataBroker dataBroker, TenantManage tenantManage) throws ParseException {\r
-        String strReturn = null;\r
-        Token objNodeNameToken = null;\r
-        Token objNodeTypeToken = null;\r
-        Token objContainNodeToken = null;\r
-        Token objPropertyNameToken = null;\r
-        Token objPropertyValueToken = null;\r
-        Token objRangeLeft = null;\r
-        Token objRangeRight = null;\r
-        Boolean typeRight=false;\r
-        List<String> subNodeNameList = new ArrayList<String>();\r
-    LinkedHashMap<String,LinkedHashMap<String,String>> properties = new LinkedHashMap<String,LinkedHashMap<String,String>>();\r
-    UpdateNodeLang updateNodelang = new UpdateNodeLang(dataBroker, tenantManage);\r
-    objNodeNameToken = jj_consume_token(ID);\r
+  Token objNameToken = null;\r
+  Token objTypeToken = null;\r
+  Token objSubNodeNameToken = null;\r
+  Token objSubNodeNameToken1 = null;\r
+  Token objPropertyNameToken = null;\r
+  Token objPropertyNameToken1 = null;\r
+  List<String> subNodeNameList = new ArrayList<String>();\r
+  LinkedHashMap<String,LinkedHashMap<String,String>> properties = new LinkedHashMap<String,LinkedHashMap<String,String>>();\r
+  UpdateNodeLang updateNodeLang = new UpdateNodeLang(dataBroker, tenantManage);\r
+    objNameToken = jj_consume_token(ID);\r
     jj_consume_token(TYPE);\r
-    objNodeTypeToken = jj_consume_token(ID);\r
+    objTypeToken = jj_consume_token(ID);\r
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
     case CONTAIN:\r
       jj_consume_token(CONTAIN);\r
-      objContainNodeToken = jj_consume_token(ID);\r
-              subNodeNameList.add(objContainNodeToken.image);\r
+      objSubNodeNameToken = jj_consume_token(ID);\r
+      subNodeNameList.add(objSubNodeNameToken.image);\r
       label_1:\r
       while (true) {\r
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
@@ -170,8 +170,8 @@ public class NEMOparser implements NEMOparserConstants {
           break label_1;\r
         }\r
         jj_consume_token(COMMA);\r
-        objContainNodeToken = jj_consume_token(ID);\r
-              subNodeNameList.add(objContainNodeToken.image);\r
+        objSubNodeNameToken1 = jj_consume_token(ID);\r
+        subNodeNameList.add(objSubNodeNameToken1.image);\r
       }\r
       break;\r
     default:\r
@@ -183,42 +183,8 @@ public class NEMOparser implements NEMOparserConstants {
       jj_consume_token(PROPERTY);\r
       objPropertyNameToken = jj_consume_token(ID);\r
       jj_consume_token(COLON);\r
-             LinkedHashMap<String,String> propertyvalue = new LinkedHashMap<String,String>();\r
-      jj_consume_token(LBRACKET);\r
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
-      case ID:\r
-        objPropertyValueToken = jj_consume_token(ID);\r
-                     propertyvalue.put(objPropertyValueToken.image, NEMOConstants.string);\r
-        break;\r
-      case ETHADDR:\r
-        objPropertyValueToken = jj_consume_token(ETHADDR);\r
-                          propertyvalue.put(objPropertyValueToken.image, NEMOConstants.string);\r
-        break;\r
-      case IPV4PREF:\r
-        objPropertyValueToken = jj_consume_token(IPV4PREF);\r
-                          propertyvalue.put(objPropertyValueToken.image, NEMOConstants.string);\r
-        break;\r
-      case IPV4ADDR:\r
-        objPropertyValueToken = jj_consume_token(IPV4ADDR);\r
-                          propertyvalue.put(objPropertyValueToken.image, NEMOConstants.string);\r
-        break;\r
-      case UNUMBER:\r
-        objPropertyValueToken = jj_consume_token(UNUMBER);\r
-                     propertyvalue.put(objPropertyValueToken.image, NEMOConstants.integer);\r
-        break;\r
-      case LPAREN:\r
-        jj_consume_token(LPAREN);\r
-        objRangeLeft = jj_consume_token(UNUMBER);\r
-        jj_consume_token(COMMA);\r
-        objRangeRight = jj_consume_token(UNUMBER);\r
-        jj_consume_token(RPAREN);\r
-                propertyvalue.put(objRangeLeft.image+NEMOConstants.comma+objRangeRight.image,NEMOConstants.range);\r
-        break;\r
-      default:\r
-        jj_la1[6] = jj_gen;\r
-        jj_consume_token(-1);\r
-        throw new ParseException();\r
-      }\r
+      LinkedHashMap<String,String> property = property();\r
+      properties.put(objPropertyNameToken.image, property);\r
       label_2:\r
       while (true) {\r
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
@@ -226,168 +192,31 @@ public class NEMOparser implements NEMOparserConstants {
           ;\r
           break;\r
         default:\r
-          jj_la1[7] = jj_gen;\r
+          jj_la1[6] = jj_gen;\r
           break label_2;\r
         }\r
         jj_consume_token(COMMA);\r
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
-        case UNUMBER:\r
-          objPropertyValueToken = jj_consume_token(UNUMBER);\r
-                     propertyvalue.put(objPropertyValueToken.image,NEMOConstants.integer);\r
-          break;\r
-        case ETHADDR:\r
-          objPropertyValueToken = jj_consume_token(ETHADDR);\r
-                          propertyvalue.put(objPropertyValueToken.image, NEMOConstants.string);\r
-          break;\r
-        case IPV4PREF:\r
-          objPropertyValueToken = jj_consume_token(IPV4PREF);\r
-                          propertyvalue.put(objPropertyValueToken.image, NEMOConstants.string);\r
-          break;\r
-        case IPV4ADDR:\r
-          objPropertyValueToken = jj_consume_token(IPV4ADDR);\r
-                          propertyvalue.put(objPropertyValueToken.image, NEMOConstants.string);\r
-          break;\r
-        case ID:\r
-          objPropertyValueToken = jj_consume_token(ID);\r
-                          propertyvalue.put(objPropertyValueToken.image, NEMOConstants.string);\r
-          break;\r
-        case LPAREN:\r
-          jj_consume_token(LPAREN);\r
-          objRangeLeft = jj_consume_token(UNUMBER);\r
-          jj_consume_token(COMMA);\r
-          objRangeRight = jj_consume_token(UNUMBER);\r
-          jj_consume_token(RPAREN);\r
-                propertyvalue.put(objRangeLeft.image+NEMOConstants.comma+objRangeRight.image,NEMOConstants.range);\r
-          break;\r
-        default:\r
-          jj_la1[8] = jj_gen;\r
-          jj_consume_token(-1);\r
-          throw new ParseException();\r
-        }\r
-      }\r
-      jj_consume_token(RBRACKET);\r
-             properties.put(objPropertyNameToken.image, propertyvalue);\r
-      label_3:\r
-      while (true) {\r
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
-        case COMMA:\r
-          ;\r
-          break;\r
-        default:\r
-          jj_la1[9] = jj_gen;\r
-          break label_3;\r
-        }\r
-        jj_consume_token(COMMA);\r
-        objPropertyNameToken = jj_consume_token(ID);\r
+        objPropertyNameToken1 = jj_consume_token(ID);\r
         jj_consume_token(COLON);\r
-             LinkedHashMap<String,String> propertyvalue1 = new LinkedHashMap<String,String>();\r
-        jj_consume_token(LBRACKET);\r
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
-        case ID:\r
-          objPropertyValueToken = jj_consume_token(ID);\r
-                     propertyvalue1.put(objPropertyValueToken.image, NEMOConstants.string);\r
-          break;\r
-        case ETHADDR:\r
-          objPropertyValueToken = jj_consume_token(ETHADDR);\r
-                          propertyvalue1.put(objPropertyValueToken.image, NEMOConstants.string);\r
-          break;\r
-        case IPV4PREF:\r
-          objPropertyValueToken = jj_consume_token(IPV4PREF);\r
-                          propertyvalue1.put(objPropertyValueToken.image, NEMOConstants.string);\r
-          break;\r
-        case UNUMBER:\r
-          objPropertyValueToken = jj_consume_token(UNUMBER);\r
-                     propertyvalue1.put(objPropertyValueToken.image, NEMOConstants.integer);\r
-          break;\r
-        case LPAREN:\r
-          jj_consume_token(LPAREN);\r
-          objRangeLeft = jj_consume_token(UNUMBER);\r
-          jj_consume_token(COMMA);\r
-          objRangeRight = jj_consume_token(UNUMBER);\r
-          jj_consume_token(RPAREN);\r
-                propertyvalue1.put(objRangeLeft.image+NEMOConstants.comma+objRangeRight.image,NEMOConstants.range);\r
-          break;\r
-        default:\r
-          jj_la1[10] = jj_gen;\r
-          jj_consume_token(-1);\r
-          throw new ParseException();\r
-        }\r
-        label_4:\r
-        while (true) {\r
-          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
-          case COMMA:\r
-            ;\r
-            break;\r
-          default:\r
-            jj_la1[11] = jj_gen;\r
-            break label_4;\r
-          }\r
-          jj_consume_token(COMMA);\r
-          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
-          case UNUMBER:\r
-            objPropertyValueToken = jj_consume_token(UNUMBER);\r
-                     propertyvalue1.put(objPropertyValueToken.image,NEMOConstants.integer);\r
-            break;\r
-          case ETHADDR:\r
-            objPropertyValueToken = jj_consume_token(ETHADDR);\r
-                          propertyvalue1.put(objPropertyValueToken.image, NEMOConstants.string);\r
-            break;\r
-          case IPV4PREF:\r
-            objPropertyValueToken = jj_consume_token(IPV4PREF);\r
-                          propertyvalue1.put(objPropertyValueToken.image, NEMOConstants.string);\r
-            break;\r
-          case ID:\r
-            objPropertyValueToken = jj_consume_token(ID);\r
-                          propertyvalue1.put(objPropertyValueToken.image, NEMOConstants.string);\r
-            break;\r
-          case LPAREN:\r
-            jj_consume_token(LPAREN);\r
-            objRangeLeft = jj_consume_token(UNUMBER);\r
-            jj_consume_token(COMMA);\r
-            objRangeRight = jj_consume_token(UNUMBER);\r
-            jj_consume_token(RPAREN);\r
-                propertyvalue1.put(objRangeLeft.image+NEMOConstants.comma+objRangeRight.image,NEMOConstants.range);\r
-            break;\r
-          default:\r
-            jj_la1[12] = jj_gen;\r
-            jj_consume_token(-1);\r
-            throw new ParseException();\r
-          }\r
-        }\r
-        jj_consume_token(RBRACKET);\r
-             properties.put(objPropertyNameToken.image, propertyvalue1);\r
+        LinkedHashMap<String,String> property1 = property();\r
+        properties.put(objPropertyNameToken1.image, property1);\r
       }\r
       break;\r
     default:\r
-      jj_la1[13] = jj_gen;\r
+      jj_la1[7] = jj_gen;\r
       ;\r
     }\r
     jj_consume_token(SEMICOLON);\r
-          strReturn = updateNodelang.NodeHandling(userId, objNodeNameToken.image, objNodeTypeToken.image,subNodeNameList, properties);\r
-          {if (true) return strReturn;}\r
-    throw new Error("Missing return statement in function");\r
-  }\r
-\r
-  static final public String DeleteNode(UserId userId, DataBroker dataBroker, TenantManage tenantManage) throws ParseException {\r
-        String strReturn = null;\r
-        Token objNodeNameToken = null;\r
-        DeleteNodeLang deleteNodelang = new DeleteNodeLang(dataBroker, tenantManage);\r
-    objNodeNameToken = jj_consume_token(ID);\r
-    jj_consume_token(SEMICOLON);\r
-    strReturn = deleteNodelang.DeleteNodeHandling(userId, objNodeNameToken.image);\r
-    {if (true) return strReturn;}\r
+    {if (true) return updateNodeLang.NodeHandling(userId, objNameToken.image, objTypeToken.image,subNodeNameList, properties);}\r
     throw new Error("Missing return statement in function");\r
   }\r
 \r
   static final public String UpdateConnection(UserId userId, DataBroker dataBroker, TenantManage tenantManage) throws ParseException {\r
-    String strReturn = null;\r
     Token objConnNameToken = null;\r
     Token objConnTypeToken = null;\r
     Token objConnEndNodeToken = null;\r
     Token objPropertyNameToken = null;\r
-        Token objPropertyValueToken = null;\r
-        Token objRangeLeft = null;\r
-        Token objRangeRight = null;\r
+        Token objPropertyNameToken1 = null;\r
     List<String> endNodes = new ArrayList<String>();\r
     LinkedHashMap<String,LinkedHashMap<String,String>> properties = new LinkedHashMap<String,LinkedHashMap<String,String>>();\r
     UpdateConnectionLang updateConnLang = new UpdateConnectionLang(dataBroker,tenantManage);\r
@@ -397,470 +226,633 @@ public class NEMOparser implements NEMOparserConstants {
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
     case ENDNODES:\r
       jj_consume_token(ENDNODES);\r
-      objConnEndNodeToken = jj_consume_token(ID);\r
-          endNodes.add(objConnEndNodeToken.image);\r
-      label_5:\r
-      while (true) {\r
-        jj_consume_token(COMMA);\r
-        objConnEndNodeToken = jj_consume_token(ID);\r
-          endNodes.add(objConnEndNodeToken.image);\r
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
-        case COMMA:\r
-          ;\r
-          break;\r
-        default:\r
-          jj_la1[14] = jj_gen;\r
-          break label_5;\r
-        }\r
-      }\r
-      break;\r
-    default:\r
-      jj_la1[15] = jj_gen;\r
-      ;\r
-    }\r
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
-    case PROPERTY:\r
-      jj_consume_token(PROPERTY);\r
-      objPropertyNameToken = jj_consume_token(ID);\r
-      jj_consume_token(COLON);\r
-             LinkedHashMap<String,String> propertyvalue = new LinkedHashMap<String,String>();\r
-      jj_consume_token(LBRACKET);\r
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
       case ID:\r
-        objPropertyValueToken = jj_consume_token(ID);\r
-                     propertyvalue.put(objPropertyValueToken.image, NEMOConstants.string);\r
-        break;\r
-      case UNUMBER:\r
-        objPropertyValueToken = jj_consume_token(UNUMBER);\r
-                     propertyvalue.put(objPropertyValueToken.image, NEMOConstants.integer);\r
+        objConnEndNodeToken = jj_consume_token(ID);\r
+           endNodes.add(objConnEndNodeToken.image);\r
         break;\r
-      case LPAREN:\r
-        jj_consume_token(LPAREN);\r
-        objRangeLeft = jj_consume_token(UNUMBER);\r
-        jj_consume_token(COMMA);\r
-        objRangeRight = jj_consume_token(UNUMBER);\r
-        jj_consume_token(RPAREN);\r
-                propertyvalue.put(objRangeLeft.image+NEMOConstants.comma+objRangeRight.image,NEMOConstants.range);\r
+      case TEMPID:\r
+        objConnEndNodeToken = jj_consume_token(TEMPID);\r
+          endNodes.add(objConnEndNodeToken.image);\r
         break;\r
       default:\r
-        jj_la1[16] = jj_gen;\r
+        jj_la1[8] = jj_gen;\r
         jj_consume_token(-1);\r
         throw new ParseException();\r
       }\r
-      label_6:\r
+      label_3:\r
       while (true) {\r
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
         case COMMA:\r
           ;\r
           break;\r
         default:\r
-          jj_la1[17] = jj_gen;\r
-          break label_6;\r
+          jj_la1[9] = jj_gen;\r
+          break label_3;\r
         }\r
         jj_consume_token(COMMA);\r
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
-        case UNUMBER:\r
-          objPropertyValueToken = jj_consume_token(UNUMBER);\r
-                     propertyvalue.put(objPropertyValueToken.image,NEMOConstants.integer);\r
-          break;\r
         case ID:\r
-          objPropertyValueToken = jj_consume_token(ID);\r
-                          propertyvalue.put(objPropertyValueToken.image, NEMOConstants.string);\r
+          objConnEndNodeToken = jj_consume_token(ID);\r
+          endNodes.add(objConnEndNodeToken.image);\r
           break;\r
-        case LPAREN:\r
-          jj_consume_token(LPAREN);\r
-          objRangeLeft = jj_consume_token(UNUMBER);\r
-          jj_consume_token(COMMA);\r
-          objRangeRight = jj_consume_token(UNUMBER);\r
-          jj_consume_token(RPAREN);\r
-                propertyvalue.put(objRangeLeft.image+NEMOConstants.comma+objRangeRight.image,NEMOConstants.range);\r
+        case TEMPID:\r
+          objConnEndNodeToken = jj_consume_token(TEMPID);\r
+          endNodes.add(objConnEndNodeToken.image);\r
           break;\r
         default:\r
-          jj_la1[18] = jj_gen;\r
+          jj_la1[10] = jj_gen;\r
           jj_consume_token(-1);\r
           throw new ParseException();\r
         }\r
       }\r
-      jj_consume_token(RBRACKET);\r
-             properties.put(objPropertyNameToken.image, propertyvalue);\r
-      label_7:\r
+      break;\r
+    default:\r
+      jj_la1[11] = jj_gen;\r
+      ;\r
+    }\r
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+    case PROPERTY:\r
+      jj_consume_token(PROPERTY);\r
+      objPropertyNameToken = jj_consume_token(ID);\r
+      jj_consume_token(COLON);\r
+      LinkedHashMap<String,String> property = property();\r
+      properties.put(objPropertyNameToken.image, property);\r
+      label_4:\r
       while (true) {\r
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
         case COMMA:\r
           ;\r
           break;\r
         default:\r
-          jj_la1[19] = jj_gen;\r
-          break label_7;\r
+          jj_la1[12] = jj_gen;\r
+          break label_4;\r
         }\r
         jj_consume_token(COMMA);\r
-        objPropertyNameToken = jj_consume_token(ID);\r
+        objPropertyNameToken1 = jj_consume_token(ID);\r
         jj_consume_token(COLON);\r
-             LinkedHashMap<String,String> propertyvalue1 = new LinkedHashMap<String,String>();\r
-        jj_consume_token(LBRACKET);\r
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
-        case ID:\r
-          objPropertyValueToken = jj_consume_token(ID);\r
-                     propertyvalue1.put(objPropertyValueToken.image, NEMOConstants.string);\r
-          break;\r
-        case UNUMBER:\r
-          objPropertyValueToken = jj_consume_token(UNUMBER);\r
-                     propertyvalue1.put(objPropertyValueToken.image, NEMOConstants.integer);\r
-          break;\r
-        case LPAREN:\r
-          jj_consume_token(LPAREN);\r
-          objRangeLeft = jj_consume_token(UNUMBER);\r
-          jj_consume_token(COMMA);\r
-          objRangeRight = jj_consume_token(UNUMBER);\r
-          jj_consume_token(RPAREN);\r
-                propertyvalue1.put(objRangeLeft.image+NEMOConstants.comma+objRangeRight.image,NEMOConstants.range);\r
-          break;\r
-        default:\r
-          jj_la1[20] = jj_gen;\r
-          jj_consume_token(-1);\r
-          throw new ParseException();\r
-        }\r
-        label_8:\r
-        while (true) {\r
-          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
-          case COMMA:\r
-            ;\r
-            break;\r
-          default:\r
-            jj_la1[21] = jj_gen;\r
-            break label_8;\r
-          }\r
-          jj_consume_token(COMMA);\r
-          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
-          case UNUMBER:\r
-            objPropertyValueToken = jj_consume_token(UNUMBER);\r
-                     propertyvalue1.put(objPropertyValueToken.image,NEMOConstants.integer);\r
-            break;\r
-          case ID:\r
-            objPropertyValueToken = jj_consume_token(ID);\r
-                          propertyvalue1.put(objPropertyValueToken.image, NEMOConstants.string);\r
-            break;\r
-          case LPAREN:\r
-            jj_consume_token(LPAREN);\r
-            objRangeLeft = jj_consume_token(UNUMBER);\r
-            jj_consume_token(COMMA);\r
-            objRangeRight = jj_consume_token(UNUMBER);\r
-            jj_consume_token(RPAREN);\r
-                propertyvalue1.put(objRangeLeft.image+NEMOConstants.comma+objRangeRight.image,NEMOConstants.range);\r
-            break;\r
-          default:\r
-            jj_la1[22] = jj_gen;\r
-            jj_consume_token(-1);\r
-            throw new ParseException();\r
-          }\r
-        }\r
-        jj_consume_token(RBRACKET);\r
-             properties.put(objPropertyNameToken.image, propertyvalue1);\r
+        LinkedHashMap<String,String> property1 = property();\r
+        properties.put(objPropertyNameToken1.image, property1);\r
       }\r
       break;\r
     default:\r
-      jj_la1[23] = jj_gen;\r
+      jj_la1[13] = jj_gen;\r
       ;\r
     }\r
     jj_consume_token(SEMICOLON);\r
-      strReturn = updateConnLang.ConnectionHandling(userId, objConnNameToken.image, objConnTypeToken.image,endNodes, properties);\r
-      {if (true) return strReturn;}\r
-    throw new Error("Missing return statement in function");\r
-  }\r
-\r
-  static final public String DeleteConnection(UserId userId, DataBroker dataBroker, TenantManage tenantManage) throws ParseException {\r
-        String strReturn = null;\r
-        Token objConnNameToken = null;\r
-        DeleteConnectionLang deleteConnectionlang = new DeleteConnectionLang(dataBroker, tenantManage);\r
-    objConnNameToken = jj_consume_token(ID);\r
-    jj_consume_token(SEMICOLON);\r
-    strReturn = deleteConnectionlang.DeleteConnectionHandling(userId, objConnNameToken.image);\r
-    {if (true) return strReturn;}\r
+    {if (true) return updateConnLang.ConnectionHandling(userId, objConnNameToken.image, objConnTypeToken.image,endNodes, properties);}\r
     throw new Error("Missing return statement in function");\r
   }\r
 \r
   static final public String UpdateFlow(UserId userId, DataBroker dataBroker, TenantManage tenantManage) throws ParseException {\r
-  String strReturn = null;\r
   Token objFlowNameToken = null;\r
   Token objFlowMatchItem = null;\r
-  Token objFlowMatchValue = null;\r
+  Token objFlowMatchItem1 = null;\r
   Token objPropertyNameToken = null;\r
-  Token objPropertyValueToken = null;\r
-  Token objRangeLeft = null;\r
-  Token objRangeRight = null;\r
+  Token objPropertyNameToken1 = null;\r
   LinkedHashMap<String,LinkedHashMap<String,String>> matchItems = new LinkedHashMap<String,LinkedHashMap<String,String>>();\r
-\r
   LinkedHashMap<String,LinkedHashMap<String,String>> properties = new LinkedHashMap<String,LinkedHashMap<String,String>>();\r
   UpdateFlowLang updateFlowLang = new UpdateFlowLang(dataBroker, tenantManage);\r
     objFlowNameToken = jj_consume_token(ID);\r
     jj_consume_token(MATCH);\r
     objFlowMatchItem = jj_consume_token(ID);\r
     jj_consume_token(COLON);\r
-      LinkedHashMap<String,String> matchvalue = new LinkedHashMap<String,String>();\r
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
-    case ID:\r
-      objFlowMatchValue = jj_consume_token(ID);\r
-              matchvalue.put(objFlowMatchValue.image,NEMOConstants.string);\r
-      break;\r
-    case ETHADDR:\r
-      objFlowMatchValue = jj_consume_token(ETHADDR);\r
-                  matchvalue.put(objFlowMatchValue.image,NEMOConstants.string);\r
-      break;\r
-    case IPV4PREF:\r
-      objFlowMatchValue = jj_consume_token(IPV4PREF);\r
-                  matchvalue.put(objFlowMatchValue.image,NEMOConstants.string);\r
-      break;\r
-    case IPV4ADDR:\r
-      objFlowMatchValue = jj_consume_token(IPV4ADDR);\r
-                  matchvalue.put(objFlowMatchValue.image,NEMOConstants.string);\r
-      break;\r
-    case UNUMBER:\r
-      objFlowMatchValue = jj_consume_token(UNUMBER);\r
-                  matchvalue.put(objFlowMatchValue.image,NEMOConstants.integer);\r
-      break;\r
-    case LPAREN:\r
-      jj_consume_token(LPAREN);\r
-      objRangeLeft = jj_consume_token(UNUMBER);\r
-      jj_consume_token(COMMA);\r
-      objRangeRight = jj_consume_token(UNUMBER);\r
-      jj_consume_token(RPAREN);\r
-                  matchvalue.put(objRangeLeft.image+NEMOConstants.comma+objRangeRight.image,NEMOConstants.range);\r
-      break;\r
-    default:\r
-      jj_la1[24] = jj_gen;\r
-      jj_consume_token(-1);\r
-      throw new ParseException();\r
-    }\r
-          matchItems.put(objFlowMatchItem.image,matchvalue);\r
-    label_9:\r
+      LinkedHashMap<String,String> match = property();\r
+      matchItems.put(objFlowMatchItem.image, match);\r
+    label_5:\r
     while (true) {\r
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
       case COMMA:\r
         ;\r
         break;\r
       default:\r
-        jj_la1[25] = jj_gen;\r
-        break label_9;\r
+        jj_la1[14] = jj_gen;\r
+        break label_5;\r
       }\r
       jj_consume_token(COMMA);\r
-      objFlowMatchItem = jj_consume_token(ID);\r
-      LinkedHashMap<String,String> matchvalue1 = new LinkedHashMap<String,String>();\r
+      objFlowMatchItem1 = jj_consume_token(ID);\r
       jj_consume_token(COLON);\r
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
-      case ID:\r
-        objFlowMatchValue = jj_consume_token(ID);\r
-              matchvalue1.put(objFlowMatchValue.image,NEMOConstants.string);\r
-        break;\r
-      case ETHADDR:\r
-        objFlowMatchValue = jj_consume_token(ETHADDR);\r
-                  matchvalue1.put(objFlowMatchValue.image,NEMOConstants.string);\r
-        break;\r
-      case IPV4PREF:\r
-        objFlowMatchValue = jj_consume_token(IPV4PREF);\r
-                   matchvalue1.put(objFlowMatchValue.image,NEMOConstants.string);\r
-        break;\r
-      case IPV4ADDR:\r
-        objFlowMatchValue = jj_consume_token(IPV4ADDR);\r
-                  matchvalue.put(objFlowMatchValue.image,NEMOConstants.string);\r
-        break;\r
-      case UNUMBER:\r
-        objFlowMatchValue = jj_consume_token(UNUMBER);\r
-                  matchvalue1.put(objFlowMatchValue.image,NEMOConstants.integer);\r
-        break;\r
-      case LPAREN:\r
-        jj_consume_token(LPAREN);\r
-        objRangeLeft = jj_consume_token(UNUMBER);\r
-        jj_consume_token(COMMA);\r
-        objRangeRight = jj_consume_token(UNUMBER);\r
-        jj_consume_token(RPAREN);\r
-                  matchvalue1.put(objRangeLeft.image+NEMOConstants.comma+objRangeRight.image,NEMOConstants.range);\r
-        break;\r
-      default:\r
-        jj_la1[26] = jj_gen;\r
-        jj_consume_token(-1);\r
-        throw new ParseException();\r
-      }\r
-          matchItems.put(objFlowMatchItem.image,matchvalue1);\r
+        LinkedHashMap<String,String> match1= property();\r
+        matchItems.put(objFlowMatchItem1.image, match1);\r
     }\r
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
     case PROPERTY:\r
       jj_consume_token(PROPERTY);\r
       objPropertyNameToken = jj_consume_token(ID);\r
       jj_consume_token(COLON);\r
-             LinkedHashMap<String,String> propertyvalue = new LinkedHashMap<String,String>();\r
-      jj_consume_token(LBRACKET);\r
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
-      case ID:\r
-        objPropertyValueToken = jj_consume_token(ID);\r
-                     propertyvalue.put(objPropertyValueToken.image, NEMOConstants.string);\r
-        break;\r
-      case UNUMBER:\r
-        objPropertyValueToken = jj_consume_token(UNUMBER);\r
-                     propertyvalue.put(objPropertyValueToken.image, NEMOConstants.integer);\r
-        break;\r
-      case LPAREN:\r
-        jj_consume_token(LPAREN);\r
-        objRangeLeft = jj_consume_token(UNUMBER);\r
-        jj_consume_token(COMMA);\r
-        objRangeRight = jj_consume_token(UNUMBER);\r
-        jj_consume_token(RPAREN);\r
-                propertyvalue.put(objRangeLeft.image+NEMOConstants.comma+objRangeRight.image,NEMOConstants.range);\r
-        break;\r
-      default:\r
-        jj_la1[27] = jj_gen;\r
-        jj_consume_token(-1);\r
-        throw new ParseException();\r
-      }\r
-      label_10:\r
+      LinkedHashMap<String,String> property = property();\r
+      properties.put(objPropertyNameToken.image, property);\r
+      label_6:\r
       while (true) {\r
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
         case COMMA:\r
           ;\r
           break;\r
         default:\r
-          jj_la1[28] = jj_gen;\r
-          break label_10;\r
+          jj_la1[15] = jj_gen;\r
+          break label_6;\r
         }\r
         jj_consume_token(COMMA);\r
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
-        case UNUMBER:\r
-          objPropertyValueToken = jj_consume_token(UNUMBER);\r
-                     propertyvalue.put(objPropertyValueToken.image,NEMOConstants.integer);\r
-          break;\r
-        case ID:\r
-          objPropertyValueToken = jj_consume_token(ID);\r
-                          propertyvalue.put(objPropertyValueToken.image, NEMOConstants.string);\r
-          break;\r
-        case LPAREN:\r
-          jj_consume_token(LPAREN);\r
-          objRangeLeft = jj_consume_token(UNUMBER);\r
-          jj_consume_token(COMMA);\r
-          objRangeRight = jj_consume_token(UNUMBER);\r
-          jj_consume_token(RPAREN);\r
-                propertyvalue.put(objRangeLeft.image+NEMOConstants.comma+objRangeRight.image,NEMOConstants.range);\r
-          break;\r
-        default:\r
-          jj_la1[29] = jj_gen;\r
-          jj_consume_token(-1);\r
-          throw new ParseException();\r
-        }\r
+        objPropertyNameToken1 = jj_consume_token(ID);\r
+        jj_consume_token(COLON);\r
+        LinkedHashMap<String,String> property1 = property();\r
+        properties.put(objPropertyNameToken1.image, property1);\r
       }\r
-      jj_consume_token(RBRACKET);\r
-             properties.put(objPropertyNameToken.image, propertyvalue);\r
-      label_11:\r
+      break;\r
+    default:\r
+      jj_la1[16] = jj_gen;\r
+      ;\r
+    }\r
+    jj_consume_token(SEMICOLON);\r
+    {if (true) return updateFlowLang.FlowHandling(userId, objFlowNameToken.image, matchItems, properties);}\r
+    throw new Error("Missing return statement in function");\r
+  }\r
+\r
+  static final public String UpdateOperation(UserId userId, DataBroker dataBroker, TenantManage tenantManage) throws ParseException {\r
+  Token objOperNameToken = null;\r
+  Token objOperTargetToken = null;\r
+  Token objOperPrioToken = null;\r
+  Token objCondRelationToken = null;\r
+  Token objCondNameToken = null;\r
+  Token objCondMatchPattern = null;\r
+  Token objActionNameToken = null;\r
+  LinkedHashMap<String,LinkedHashMap<String,String>> conditions = new LinkedHashMap<String,LinkedHashMap<String,String>>();\r
+  LinkedHashMap<String,LinkedHashMap<String,String>> actions = new LinkedHashMap<String,LinkedHashMap<String,String>>();\r
+  UpdateOperationLang updateOperationLang  = new UpdateOperationLang(dataBroker, tenantManage);\r
+    objOperNameToken = jj_consume_token(ID);\r
+    jj_consume_token(TARGET);\r
+    objOperTargetToken = jj_consume_token(ID);\r
+    jj_consume_token(PRIORITY);\r
+    objOperPrioToken = jj_consume_token(UNUMBER);\r
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+    case CONDITION:\r
+      jj_consume_token(CONDITION);\r
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+      case NOT:\r
+        objCondRelationToken = jj_consume_token(NOT);\r
+        break;\r
+      default:\r
+        jj_la1[17] = jj_gen;\r
+        ;\r
+      }\r
+      jj_consume_token(LPAREN);\r
+      objCondNameToken = jj_consume_token(ID);\r
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+      case EQUAL:\r
+        objCondMatchPattern = jj_consume_token(EQUAL);\r
+        break;\r
+      case GTHAN:\r
+        objCondMatchPattern = jj_consume_token(GTHAN);\r
+        break;\r
+      case LTHAN:\r
+        objCondMatchPattern = jj_consume_token(LTHAN);\r
+        break;\r
+      case NLTHAN:\r
+        objCondMatchPattern = jj_consume_token(NLTHAN);\r
+        break;\r
+      case NMTHAN:\r
+        objCondMatchPattern = jj_consume_token(NMTHAN);\r
+        break;\r
+      case BETWEEN:\r
+        objCondMatchPattern = jj_consume_token(BETWEEN);\r
+        break;\r
+      default:\r
+        jj_la1[18] = jj_gen;\r
+        jj_consume_token(-1);\r
+        throw new ParseException();\r
+      }\r
+      LinkedHashMap<String,String> targetValue = conditionTarget();\r
+      String s = (objCondRelationToken==null)?null:objCondRelationToken.image;\r
+      conditions.put(s+","+objCondNameToken.image+","+objCondMatchPattern.image, targetValue);\r
+      jj_consume_token(RPAREN);\r
+      label_7:\r
       while (true) {\r
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
-        case COMMA:\r
+        case AND:\r
+        case OR:\r
+        case NOT:\r
           ;\r
           break;\r
         default:\r
-          jj_la1[30] = jj_gen;\r
-          break label_11;\r
+          jj_la1[19] = jj_gen;\r
+          break label_7;\r
         }\r
-        jj_consume_token(COMMA);\r
-        objPropertyNameToken = jj_consume_token(ID);\r
-        jj_consume_token(COLON);\r
-             LinkedHashMap<String,String> propertyvalue1 = new LinkedHashMap<String,String>();\r
-        jj_consume_token(LBRACKET);\r
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
-        case ID:\r
-          objPropertyValueToken = jj_consume_token(ID);\r
-                     propertyvalue1.put(objPropertyValueToken.image, NEMOConstants.string);\r
+        case NOT:\r
+          objCondRelationToken = jj_consume_token(NOT);\r
+          break;\r
+        case AND:\r
+          objCondRelationToken = jj_consume_token(AND);\r
+          break;\r
+        case OR:\r
+          objCondRelationToken = jj_consume_token(OR);\r
+          break;\r
+        default:\r
+          jj_la1[20] = jj_gen;\r
+          jj_consume_token(-1);\r
+          throw new ParseException();\r
+        }\r
+        jj_consume_token(LPAREN);\r
+        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+        case EQUAL:\r
+          objCondMatchPattern = jj_consume_token(EQUAL);\r
+          break;\r
+        case GTHAN:\r
+          objCondMatchPattern = jj_consume_token(GTHAN);\r
+          break;\r
+        case LTHAN:\r
+          objCondMatchPattern = jj_consume_token(LTHAN);\r
+          break;\r
+        case NLTHAN:\r
+          objCondMatchPattern = jj_consume_token(NLTHAN);\r
           break;\r
-        case UNUMBER:\r
-          objPropertyValueToken = jj_consume_token(UNUMBER);\r
-                     propertyvalue1.put(objPropertyValueToken.image, NEMOConstants.integer);\r
+        case NMTHAN:\r
+          objCondMatchPattern = jj_consume_token(NMTHAN);\r
           break;\r
-        case LPAREN:\r
-          jj_consume_token(LPAREN);\r
-          objRangeLeft = jj_consume_token(UNUMBER);\r
-          jj_consume_token(COMMA);\r
-          objRangeRight = jj_consume_token(UNUMBER);\r
-          jj_consume_token(RPAREN);\r
-                propertyvalue1.put(objRangeLeft.image+NEMOConstants.comma+objRangeRight.image,NEMOConstants.range);\r
+        case BETWEEN:\r
+          objCondMatchPattern = jj_consume_token(BETWEEN);\r
           break;\r
         default:\r
-          jj_la1[31] = jj_gen;\r
+          jj_la1[21] = jj_gen;\r
           jj_consume_token(-1);\r
           throw new ParseException();\r
         }\r
-        label_12:\r
-        while (true) {\r
-          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
-          case COMMA:\r
-            ;\r
-            break;\r
-          default:\r
-            jj_la1[32] = jj_gen;\r
-            break label_12;\r
+              LinkedHashMap<String,String> targetValue1 = conditionTarget();\r
+              String s1 = (objCondRelationToken==null)?null:objCondRelationToken.image;\r
+              conditions.put(s1+","+objCondNameToken.image+","+objCondMatchPattern.image, targetValue1);\r
+        jj_consume_token(RPAREN);\r
+      }\r
+      break;\r
+    default:\r
+      jj_la1[22] = jj_gen;\r
+      ;\r
+    }\r
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+    case ACTION:\r
+      jj_consume_token(ACTION);\r
+      objActionNameToken = jj_consume_token(ID);\r
+      LinkedHashMap<String,String> action = null;\r
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+      case COLON:\r
+        jj_consume_token(COLON);\r
+      action = property();\r
+        break;\r
+      default:\r
+        jj_la1[23] = jj_gen;\r
+        ;\r
+      }\r
+      actions.put(objActionNameToken.image, action);\r
+      label_8:\r
+      while (true) {\r
+        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+        case COMMA:\r
+          ;\r
+          break;\r
+        default:\r
+          jj_la1[24] = jj_gen;\r
+          break label_8;\r
+        }\r
+        jj_consume_token(COMMA);\r
+        objActionNameToken = jj_consume_token(ID);\r
+        LinkedHashMap<String,String> action1 = null;\r
+        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+        case COLON:\r
+          jj_consume_token(COLON);\r
+        action1 = property();\r
+          break;\r
+        default:\r
+          jj_la1[25] = jj_gen;\r
+          ;\r
+        }\r
+        actions.put(objActionNameToken.image, action1);\r
+      }\r
+      break;\r
+    default:\r
+      jj_la1[26] = jj_gen;\r
+      ;\r
+    }\r
+    jj_consume_token(SEMICOLON);\r
+    {if (true) return updateOperationLang.OperationHandling(userId, objOperNameToken.image, objOperTargetToken.image, objOperPrioToken.image,conditions,actions);}\r
+    throw new Error("Missing return statement in function");\r
+  }\r
+\r
+  static final public String NodeModel(UserId userId, DataBroker dataBroker, TenantManage tenantManage) throws ParseException {\r
+  String strReturn = null;\r
+  Token nodeModelName = null;\r
+  Token parameterType = null;\r
+  Token parameterName = null;\r
+  Token parameterType1 = null;\r
+  Token parameterName1 = null;\r
+  LinkedHashMap<String, String> parameters = new LinkedHashMap< String, String >();\r
+  UpdateTemplateDefinitionLang definition = new UpdateTemplateDefinitionLang(dataBroker, tenantManage);\r
+    nodeModelName = jj_consume_token(ID);\r
+    jj_consume_token(PROPERTY);\r
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+    case STRING:\r
+      parameterType = jj_consume_token(STRING);\r
+      break;\r
+    case INTEGER:\r
+      parameterType = jj_consume_token(INTEGER);\r
+      break;\r
+    case RANGE:\r
+      parameterType = jj_consume_token(RANGE);\r
+      break;\r
+    default:\r
+      jj_la1[27] = jj_gen;\r
+      jj_consume_token(-1);\r
+      throw new ParseException();\r
+    }\r
+    jj_consume_token(COLON);\r
+    parameterName = jj_consume_token(ID);\r
+            parameters.put(parameterName.image, parameterType.image);\r
+    label_9:\r
+    while (true) {\r
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+      case COMMA:\r
+        ;\r
+        break;\r
+      default:\r
+        jj_la1[28] = jj_gen;\r
+        break label_9;\r
+      }\r
+      jj_consume_token(COMMA);\r
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+      case STRING:\r
+        parameterType1 = jj_consume_token(STRING);\r
+        break;\r
+      case INTEGER:\r
+        parameterType1 = jj_consume_token(INTEGER);\r
+        break;\r
+      case RANGE:\r
+        parameterType1 = jj_consume_token(RANGE);\r
+        break;\r
+      default:\r
+        jj_la1[29] = jj_gen;\r
+        jj_consume_token(-1);\r
+        throw new ParseException();\r
+      }\r
+      jj_consume_token(COLON);\r
+      parameterName1 = jj_consume_token(ID);\r
+            parameters.put(parameterName1.image, parameterType1.image);\r
+    }\r
+    jj_consume_token(SEMICOLON);\r
+    label_10:\r
+    while (true) {\r
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+      case NODE:\r
+      case CONNECTION:\r
+      case FLOW:\r
+      case OPERATION:\r
+        ;\r
+        break;\r
+      default:\r
+        jj_la1[30] = jj_gen;\r
+        break label_10;\r
+      }\r
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+      case NODE:\r
+        jj_consume_token(NODE);\r
+      strReturn = abstractNode(definition);\r
+        break;\r
+      case CONNECTION:\r
+        jj_consume_token(CONNECTION);\r
+          strReturn = abstractConnection(definition);\r
+        break;\r
+      case FLOW:\r
+        jj_consume_token(FLOW);\r
+          strReturn = abstractFlow(definition);\r
+        break;\r
+      case OPERATION:\r
+        jj_consume_token(OPERATION);\r
+          strReturn = abstractOperation(definition);\r
+        break;\r
+      default:\r
+        jj_la1[31] = jj_gen;\r
+        jj_consume_token(-1);\r
+        throw new ParseException();\r
+      }\r
+    }\r
+          if(strReturn !=null)\r
+          {\r
+            {if (true) return strReturn;}\r
           }\r
-          jj_consume_token(COMMA);\r
-          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
-          case UNUMBER:\r
-            objPropertyValueToken = jj_consume_token(UNUMBER);\r
-                     propertyvalue1.put(objPropertyValueToken.image,NEMOConstants.integer);\r
-            break;\r
-          case ID:\r
-            objPropertyValueToken = jj_consume_token(ID);\r
-                          propertyvalue1.put(objPropertyValueToken.image, NEMOConstants.string);\r
-            break;\r
-          case LPAREN:\r
-            jj_consume_token(LPAREN);\r
-            objRangeLeft = jj_consume_token(UNUMBER);\r
-            jj_consume_token(COMMA);\r
-            objRangeRight = jj_consume_token(UNUMBER);\r
-            jj_consume_token(RPAREN);\r
-                propertyvalue1.put(objRangeLeft.image+NEMOConstants.comma+objRangeRight.image,NEMOConstants.range);\r
-            break;\r
-          default:\r
-            jj_la1[33] = jj_gen;\r
-            jj_consume_token(-1);\r
-            throw new ParseException();\r
+          else\r
+          {\r
+            {if (true) return definition.templateDefinitionLang(userId, nodeModelName.image, parameters);}\r
           }\r
+    throw new Error("Missing return statement in function");\r
+  }\r
+\r
+  static final public String abstractNode(UpdateTemplateDefinitionLang definition) throws ParseException {\r
+  Token objNameToken = null;\r
+  Token objTypeToken = null;\r
+  Token objSubNodeNameToken = null;\r
+  Token objSubNodeNameToken1 = null;\r
+  Token objPropertyNameToken = null;\r
+  Token objPropertyNameToken1 = null;\r
+  List<String> subNodeNameList = new ArrayList<String>();\r
+  LinkedHashMap<String,LinkedHashMap<String,String>> properties = new LinkedHashMap<String,LinkedHashMap<String,String>>();\r
+    objNameToken = jj_consume_token(ID);\r
+    jj_consume_token(TYPE);\r
+    objTypeToken = jj_consume_token(ID);\r
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+    case CONTAIN:\r
+      jj_consume_token(CONTAIN);\r
+      objSubNodeNameToken = jj_consume_token(ID);\r
+      subNodeNameList.add(objSubNodeNameToken.image);\r
+      label_11:\r
+      while (true) {\r
+        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+        case COMMA:\r
+          ;\r
+          break;\r
+        default:\r
+          jj_la1[32] = jj_gen;\r
+          break label_11;\r
+        }\r
+        jj_consume_token(COMMA);\r
+        objSubNodeNameToken1 = jj_consume_token(ID);\r
+        subNodeNameList.add(objSubNodeNameToken1.image);\r
+      }\r
+      break;\r
+    default:\r
+      jj_la1[33] = jj_gen;\r
+      ;\r
+    }\r
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+    case PROPERTY:\r
+      jj_consume_token(PROPERTY);\r
+      objPropertyNameToken = jj_consume_token(ID);\r
+      jj_consume_token(COLON);\r
+      LinkedHashMap<String,String> property = property();\r
+      properties.put(objPropertyNameToken.image, property);\r
+      label_12:\r
+      while (true) {\r
+        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+        case COMMA:\r
+          ;\r
+          break;\r
+        default:\r
+          jj_la1[34] = jj_gen;\r
+          break label_12;\r
         }\r
-        jj_consume_token(RBRACKET);\r
-             properties.put(objPropertyNameToken.image, propertyvalue1);\r
+        jj_consume_token(COMMA);\r
+        objPropertyNameToken1 = jj_consume_token(ID);\r
+        jj_consume_token(COLON);\r
+        LinkedHashMap<String,String> property1 = property();\r
+        properties.put(objPropertyNameToken1.image, property1);\r
       }\r
       break;\r
     default:\r
-      jj_la1[34] = jj_gen;\r
+      jj_la1[35] = jj_gen;\r
       ;\r
     }\r
     jj_consume_token(SEMICOLON);\r
-    strReturn = updateFlowLang.FlowHandling(userId, objFlowNameToken.image, matchItems, properties);\r
-    {if (true) return strReturn;}\r
+    {if (true) return definition.createAbstractNode(objNameToken.image, objTypeToken.image,subNodeNameList, properties);};\r
     throw new Error("Missing return statement in function");\r
   }\r
 \r
-  static final public String DeleteFlow(UserId userId, DataBroker dataBroker, TenantManage tenantManage) throws ParseException {\r
-        String strReturn = null;\r
-        Token objFlowNameToken = null;\r
-        DeleteFlowLang deleteFlowlang = new DeleteFlowLang(dataBroker, tenantManage);\r
+  static final public String abstractConnection(UpdateTemplateDefinitionLang definition) throws ParseException {\r
+    Token objConnNameToken = null;\r
+    Token objConnTypeToken = null;\r
+    Token objConnEndNodeToken = null;\r
+    Token objPropertyNameToken = null;\r
+        Token objPropertyNameToken1 = null;\r
+    List<String> endNodes = new ArrayList<String>();\r
+    LinkedHashMap<String,LinkedHashMap<String,String>> properties = new LinkedHashMap<String,LinkedHashMap<String,String>>();\r
+    objConnNameToken = jj_consume_token(ID);\r
+    jj_consume_token(TYPE);\r
+    objConnTypeToken = jj_consume_token(ID);\r
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+    case ENDNODES:\r
+      jj_consume_token(ENDNODES);\r
+      objConnEndNodeToken = jj_consume_token(ID);\r
+          endNodes.add(objConnEndNodeToken.image);\r
+      label_13:\r
+      while (true) {\r
+        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+        case COMMA:\r
+          ;\r
+          break;\r
+        default:\r
+          jj_la1[36] = jj_gen;\r
+          break label_13;\r
+        }\r
+        jj_consume_token(COMMA);\r
+        objConnEndNodeToken = jj_consume_token(ID);\r
+          endNodes.add(objConnEndNodeToken.image);\r
+      }\r
+      break;\r
+    default:\r
+      jj_la1[37] = jj_gen;\r
+      ;\r
+    }\r
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+    case PROPERTY:\r
+      jj_consume_token(PROPERTY);\r
+      objPropertyNameToken = jj_consume_token(ID);\r
+      jj_consume_token(COLON);\r
+      LinkedHashMap<String,String> property = property();\r
+      properties.put(objPropertyNameToken.image, property);\r
+      label_14:\r
+      while (true) {\r
+        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+        case COMMA:\r
+          ;\r
+          break;\r
+        default:\r
+          jj_la1[38] = jj_gen;\r
+          break label_14;\r
+        }\r
+        jj_consume_token(COMMA);\r
+        objPropertyNameToken1 = jj_consume_token(ID);\r
+        jj_consume_token(COLON);\r
+        LinkedHashMap<String,String> property1 = property();\r
+        properties.put(objPropertyNameToken1.image, property1);\r
+      }\r
+      break;\r
+    default:\r
+      jj_la1[39] = jj_gen;\r
+      ;\r
+    }\r
+    jj_consume_token(SEMICOLON);\r
+    {if (true) return definition.createAbstractConnection(objConnNameToken.image, objConnTypeToken.image,endNodes, properties);}\r
+    throw new Error("Missing return statement in function");\r
+  }\r
+\r
+  static final public String abstractFlow(UpdateTemplateDefinitionLang definition) throws ParseException {\r
+  Token objFlowNameToken = null;\r
+  Token objFlowMatchItem = null;\r
+  Token objFlowMatchItem1 = null;\r
+  Token objPropertyNameToken = null;\r
+  Token objPropertyNameToken1 = null;\r
+  LinkedHashMap<String,LinkedHashMap<String,String>> matchItems = new LinkedHashMap<String,LinkedHashMap<String,String>>();\r
+  LinkedHashMap<String,LinkedHashMap<String,String>> properties = new LinkedHashMap<String,LinkedHashMap<String,String>>();\r
     objFlowNameToken = jj_consume_token(ID);\r
+    jj_consume_token(MATCH);\r
+    objFlowMatchItem = jj_consume_token(ID);\r
+    jj_consume_token(COLON);\r
+      LinkedHashMap<String,String> match = property();\r
+      matchItems.put(objFlowMatchItem.image, match);\r
+    label_15:\r
+    while (true) {\r
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+      case COMMA:\r
+        ;\r
+        break;\r
+      default:\r
+        jj_la1[40] = jj_gen;\r
+        break label_15;\r
+      }\r
+      jj_consume_token(COMMA);\r
+      objFlowMatchItem1 = jj_consume_token(ID);\r
+      jj_consume_token(COLON);\r
+        LinkedHashMap<String,String> match1 = property();\r
+        matchItems.put(objFlowMatchItem1.image, match1);\r
+    }\r
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+    case PROPERTY:\r
+      jj_consume_token(PROPERTY);\r
+      objPropertyNameToken = jj_consume_token(ID);\r
+      jj_consume_token(COLON);\r
+      LinkedHashMap<String,String> property = property();\r
+      properties.put(objPropertyNameToken.image, property);\r
+      label_16:\r
+      while (true) {\r
+        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+        case COMMA:\r
+          ;\r
+          break;\r
+        default:\r
+          jj_la1[41] = jj_gen;\r
+          break label_16;\r
+        }\r
+        jj_consume_token(COMMA);\r
+        objPropertyNameToken1 = jj_consume_token(ID);\r
+        jj_consume_token(COLON);\r
+        LinkedHashMap<String,String> property1 = property();\r
+        properties.put(objPropertyNameToken1.image, property1);\r
+      }\r
+      break;\r
+    default:\r
+      jj_la1[42] = jj_gen;\r
+      ;\r
+    }\r
     jj_consume_token(SEMICOLON);\r
-    strReturn = deleteFlowlang.DeleteFlowHandling(userId, objFlowNameToken.image);\r
-    {if (true) return strReturn;}\r
+    {if (true) return definition.createAbstractFlow(objFlowNameToken.image, matchItems, properties);};\r
     throw new Error("Missing return statement in function");\r
   }\r
 \r
-  static final public String UpdateOperation(UserId userId, DataBroker dataBroker, TenantManage tenantManage) throws ParseException {\r
-  String strReturn = null;\r
+  static final public String abstractOperation(UpdateTemplateDefinitionLang definition) throws ParseException {\r
   Token objOperNameToken = null;\r
   Token objOperTargetToken = null;\r
   Token objOperPrioToken = null;\r
   Token objCondRelationToken = null;\r
   Token objCondNameToken = null;\r
   Token objCondMatchPattern = null;\r
-  Token objCondTarget = null;\r
-  Token objCondTarget1 = null;\r
   Token objActionNameToken = null;\r
-  Token objActionValueToken = null;\r
-  Token objRangeLeft = null;\r
-  Token objRangeRight = null;\r
   LinkedHashMap<String,LinkedHashMap<String,String>> conditions = new LinkedHashMap<String,LinkedHashMap<String,String>>();\r
-\r
   LinkedHashMap<String,LinkedHashMap<String,String>> actions = new LinkedHashMap<String,LinkedHashMap<String,String>>();\r
-  UpdateOperationLang updateOperationLang  = new UpdateOperationLang(dataBroker, tenantManage);\r
     objOperNameToken = jj_consume_token(ID);\r
     jj_consume_token(TARGET);\r
     objOperTargetToken = jj_consume_token(ID);\r
@@ -874,7 +866,7 @@ public class NEMOparser implements NEMOparserConstants {
         objCondRelationToken = jj_consume_token(NOT);\r
         break;\r
       default:\r
-        jj_la1[35] = jj_gen;\r
+        jj_la1[43] = jj_gen;\r
         ;\r
       }\r
       jj_consume_token(LPAREN);\r
@@ -890,63 +882,24 @@ public class NEMOparser implements NEMOparserConstants {
         objCondMatchPattern = jj_consume_token(LTHAN);\r
         break;\r
       case NLTHAN:\r
-        objCondMatchPattern = jj_consume_token(NLTHAN);\r
-        break;\r
-      case NMTHAN:\r
-        objCondMatchPattern = jj_consume_token(NMTHAN);\r
-        break;\r
-      case BETWEEN:\r
-        objCondMatchPattern = jj_consume_token(BETWEEN);\r
-        break;\r
-      default:\r
-        jj_la1[36] = jj_gen;\r
-        jj_consume_token(-1);\r
-        throw new ParseException();\r
-      }\r
-        LinkedHashMap<String,String> targetValue = new LinkedHashMap<String,String>();\r
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
-      case ID:\r
-        objCondTarget = jj_consume_token(ID);\r
-                        targetValue.put(objCondTarget.image,NEMOConstants.string);\r
-        break;\r
-      case TIMEVAL:\r
-        objCondTarget = jj_consume_token(TIMEVAL);\r
-                        targetValue.put(objCondTarget.image,NEMOConstants.string);\r
-        break;\r
-      case FULLTIME:\r
-        objCondTarget = jj_consume_token(FULLTIME);\r
-                        targetValue.put(objCondTarget.image,NEMOConstants.string);\r
-        break;\r
-      case UNUMBER:\r
-        objCondTarget = jj_consume_token(UNUMBER);\r
-                        targetValue.put(objCondTarget.image,NEMOConstants.integer);\r
-        break;\r
-      case LPAREN:\r
-        jj_consume_token(LPAREN);\r
-        objRangeLeft = jj_consume_token(UNUMBER);\r
-        jj_consume_token(COMMA);\r
-        objRangeRight = jj_consume_token(UNUMBER);\r
-        jj_consume_token(RPAREN);\r
-                        targetValue.put(objRangeLeft.image+NEMOConstants.comma+objRangeRight.image,NEMOConstants.range);\r
+        objCondMatchPattern = jj_consume_token(NLTHAN);\r
+        break;\r
+      case NMTHAN:\r
+        objCondMatchPattern = jj_consume_token(NMTHAN);\r
+        break;\r
+      case BETWEEN:\r
+        objCondMatchPattern = jj_consume_token(BETWEEN);\r
         break;\r
       default:\r
-        jj_la1[37] = jj_gen;\r
+        jj_la1[44] = jj_gen;\r
         jj_consume_token(-1);\r
         throw new ParseException();\r
       }\r
+      LinkedHashMap<String,String> targetValue = conditionTarget();\r
+      String s = (objCondRelationToken==null)?null:objCondRelationToken.image;\r
+      conditions.put(s+","+objCondNameToken.image+","+objCondMatchPattern.image, targetValue);\r
       jj_consume_token(RPAREN);\r
-         if (objCondRelationToken == null)\r
-         {\r
-           String s = null;\r
-           conditions.put(s+NEMOConstants.comma+objCondNameToken.image+NEMOConstants.comma\r
-         +objCondMatchPattern.image,targetValue);\r
-         }\r
-         else\r
-         {\r
-           conditions.put(objCondRelationToken.image+NEMOConstants.comma+objCondNameToken.image+NEMOConstants.comma\r
-         +objCondMatchPattern.image,targetValue);\r
-         }\r
-      label_13:\r
+      label_17:\r
       while (true) {\r
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
         case AND:\r
@@ -955,8 +908,8 @@ public class NEMOparser implements NEMOparserConstants {
           ;\r
           break;\r
         default:\r
-          jj_la1[38] = jj_gen;\r
-          break label_13;\r
+          jj_la1[45] = jj_gen;\r
+          break label_17;\r
         }\r
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
         case NOT:\r
@@ -969,7 +922,7 @@ public class NEMOparser implements NEMOparserConstants {
           objCondRelationToken = jj_consume_token(OR);\r
           break;\r
         default:\r
-          jj_la1[39] = jj_gen;\r
+          jj_la1[46] = jj_gen;\r
           jj_consume_token(-1);\r
           throw new ParseException();\r
         }\r
@@ -991,207 +944,61 @@ public class NEMOparser implements NEMOparserConstants {
         case NMTHAN:\r
           objCondMatchPattern = jj_consume_token(NMTHAN);\r
           break;\r
-        default:\r
-          jj_la1[40] = jj_gen;\r
-          jj_consume_token(-1);\r
-          throw new ParseException();\r
-        }\r
-                LinkedHashMap<String,String> targetValue1 = new LinkedHashMap<String,String>();\r
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
-        case ID:\r
-          objCondTarget = jj_consume_token(ID);\r
-                                targetValue1.put(objCondTarget.image,NEMOConstants.string);\r
-          break;\r
-        case TIMEVAL:\r
-          objCondTarget = jj_consume_token(TIMEVAL);\r
-                                targetValue1.put(objCondTarget.image,NEMOConstants.string);\r
-          break;\r
-        case FULLTIME:\r
-          objCondTarget = jj_consume_token(FULLTIME);\r
-                                targetValue1.put(objCondTarget.image,NEMOConstants.string);\r
-          break;\r
-        case UNUMBER:\r
-          objCondTarget = jj_consume_token(UNUMBER);\r
-                                targetValue1.put(objCondTarget.image,NEMOConstants.integer);\r
-          break;\r
-        case LPAREN:\r
-          jj_consume_token(LPAREN);\r
-          objRangeLeft = jj_consume_token(UNUMBER);\r
-          jj_consume_token(COMMA);\r
-          objRangeRight = jj_consume_token(UNUMBER);\r
-          jj_consume_token(RPAREN);\r
-                                targetValue1.put(objRangeLeft.image+NEMOConstants.comma+objRangeRight.image,NEMOConstants.range);\r
+        case BETWEEN:\r
+          objCondMatchPattern = jj_consume_token(BETWEEN);\r
           break;\r
         default:\r
-          jj_la1[41] = jj_gen;\r
+          jj_la1[47] = jj_gen;\r
           jj_consume_token(-1);\r
           throw new ParseException();\r
         }\r
+              LinkedHashMap<String,String> targetValue1 = conditionTarget();\r
+              conditions.put(objCondRelationToken.image+","+objCondNameToken.image+","+objCondMatchPattern.image, targetValue1);\r
         jj_consume_token(RPAREN);\r
-                 conditions.put(objCondRelationToken.image+NEMOConstants.comma+objCondNameToken.image+NEMOConstants.comma\r
-                 +objCondMatchPattern.image,targetValue1);\r
       }\r
       break;\r
     default:\r
-      jj_la1[42] = jj_gen;\r
+      jj_la1[48] = jj_gen;\r
       ;\r
     }\r
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
     case ACTION:\r
       jj_consume_token(ACTION);\r
       objActionNameToken = jj_consume_token(ID);\r
+      LinkedHashMap<String,String> action = null;\r
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
       case COLON:\r
         jj_consume_token(COLON);\r
-          LinkedHashMap<String,String> actionvalues = new LinkedHashMap<String,String>();\r
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
-        case LBRACKET:\r
-          jj_consume_token(LBRACKET);\r
-          objActionValueToken = jj_consume_token(ID);\r
-          actionvalues.put(objActionValueToken.image, NEMOConstants.string);\r
-          break;\r
-        case UNUMBER:\r
-          objActionValueToken = jj_consume_token(UNUMBER);\r
-              actionvalues.put(objActionValueToken.image, NEMOConstants.integer);\r
-          break;\r
-        case LPAREN:\r
-          jj_consume_token(LPAREN);\r
-          objRangeLeft = jj_consume_token(UNUMBER);\r
-          jj_consume_token(COMMA);\r
-          objRangeRight = jj_consume_token(UNUMBER);\r
-          jj_consume_token(RPAREN);\r
-              actionvalues.put(objRangeLeft.image+NEMOConstants.comma+objRangeRight.image, NEMOConstants.range);\r
-          break;\r
-        default:\r
-          jj_la1[43] = jj_gen;\r
-          jj_consume_token(-1);\r
-          throw new ParseException();\r
-        }\r
-        label_14:\r
-        while (true) {\r
-          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
-          case COMMA:\r
-          case LPAREN:\r
-          case UNUMBER:\r
-            ;\r
-            break;\r
-          default:\r
-            jj_la1[44] = jj_gen;\r
-            break label_14;\r
-          }\r
-          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
-          case COMMA:\r
-            jj_consume_token(COMMA);\r
-            objActionValueToken = jj_consume_token(ID);\r
-          actionvalues.put(objActionValueToken.image, NEMOConstants.string);\r
-            break;\r
-          case UNUMBER:\r
-            objActionValueToken = jj_consume_token(UNUMBER);\r
-              actionvalues.put(objActionValueToken.image, NEMOConstants.integer);\r
-            break;\r
-          case LPAREN:\r
-            jj_consume_token(LPAREN);\r
-            objRangeLeft = jj_consume_token(UNUMBER);\r
-            jj_consume_token(COMMA);\r
-            objRangeRight = jj_consume_token(UNUMBER);\r
-            jj_consume_token(RPAREN);\r
-              actionvalues.put(objRangeLeft.image+NEMOConstants.comma+objRangeRight.image, NEMOConstants.range);\r
-            break;\r
-          default:\r
-            jj_la1[45] = jj_gen;\r
-            jj_consume_token(-1);\r
-            throw new ParseException();\r
-          }\r
-        }\r
-        jj_consume_token(RBRACKET);\r
-              actions.put(objActionNameToken.image,actionvalues);\r
+      action = property();\r
         break;\r
       default:\r
-        jj_la1[46] = jj_gen;\r
+        jj_la1[49] = jj_gen;\r
         ;\r
       }\r
-      label_15:\r
+      actions.put(objActionNameToken.image, action);\r
+      label_18:\r
       while (true) {\r
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
         case COMMA:\r
           ;\r
           break;\r
         default:\r
-          jj_la1[47] = jj_gen;\r
-          break label_15;\r
+          jj_la1[50] = jj_gen;\r
+          break label_18;\r
         }\r
         jj_consume_token(COMMA);\r
         objActionNameToken = jj_consume_token(ID);\r
+        LinkedHashMap<String,String> action1 = null;\r
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
         case COLON:\r
           jj_consume_token(COLON);\r
-          LinkedHashMap<String,String> actionvalues1 = new LinkedHashMap<String,String>();\r
-          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
-          case LBRACKET:\r
-            jj_consume_token(LBRACKET);\r
-            objActionValueToken = jj_consume_token(ID);\r
-          actionvalues1.put(objActionValueToken.image, NEMOConstants.string);\r
-            break;\r
-          case UNUMBER:\r
-            objActionValueToken = jj_consume_token(UNUMBER);\r
-              actionvalues1.put(objActionValueToken.image, NEMOConstants.integer);\r
-            break;\r
-          case LPAREN:\r
-            jj_consume_token(LPAREN);\r
-            objRangeLeft = jj_consume_token(UNUMBER);\r
-            jj_consume_token(COMMA);\r
-            objRangeRight = jj_consume_token(UNUMBER);\r
-            jj_consume_token(RPAREN);\r
-              actionvalues1.put(objRangeLeft.image+NEMOConstants.comma+objRangeRight.image, NEMOConstants.range);\r
-            break;\r
-          default:\r
-            jj_la1[48] = jj_gen;\r
-            jj_consume_token(-1);\r
-            throw new ParseException();\r
-          }\r
-          label_16:\r
-          while (true) {\r
-            switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
-            case COMMA:\r
-            case LPAREN:\r
-            case UNUMBER:\r
-              ;\r
-              break;\r
-            default:\r
-              jj_la1[49] = jj_gen;\r
-              break label_16;\r
-            }\r
-            switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
-            case COMMA:\r
-              jj_consume_token(COMMA);\r
-              objActionValueToken = jj_consume_token(ID);\r
-          actionvalues1.put(objActionValueToken.image, NEMOConstants.string);\r
-              break;\r
-            case UNUMBER:\r
-              objActionValueToken = jj_consume_token(UNUMBER);\r
-              actionvalues1.put(objActionValueToken.image, NEMOConstants.integer);\r
-              break;\r
-            case LPAREN:\r
-              jj_consume_token(LPAREN);\r
-              objRangeLeft = jj_consume_token(UNUMBER);\r
-              jj_consume_token(COMMA);\r
-              objRangeRight = jj_consume_token(UNUMBER);\r
-              jj_consume_token(RPAREN);\r
-              actionvalues1.put(objRangeLeft.image+NEMOConstants.comma+objRangeRight.image, NEMOConstants.range);\r
-              break;\r
-            default:\r
-              jj_la1[50] = jj_gen;\r
-              jj_consume_token(-1);\r
-              throw new ParseException();\r
-            }\r
-          }\r
-          jj_consume_token(RBRACKET);\r
-              actions.put(objActionNameToken.image,actionvalues1);\r
+        action1 = property();\r
           break;\r
         default:\r
           jj_la1[51] = jj_gen;\r
           ;\r
         }\r
+        actions.put(objActionNameToken.image, action1);\r
       }\r
       break;\r
     default:\r
@@ -1199,19 +1006,43 @@ public class NEMOparser implements NEMOparserConstants {
       ;\r
     }\r
     jj_consume_token(SEMICOLON);\r
-    strReturn = updateOperationLang.OperationHandling(userId, objOperNameToken.image, objOperTargetToken.image, objOperPrioToken.image,conditions,actions);\r
-    {if (true) return strReturn;}\r
+    {if (true) return definition.createAbstractOperation(objOperNameToken.image, objOperTargetToken.image, objOperPrioToken.image,conditions,actions);};\r
+    throw new Error("Missing return statement in function");\r
+  }\r
+\r
+  static final public String DeleteNode(UserId userId, DataBroker dataBroker, TenantManage tenantManage) throws ParseException {\r
+        Token objNodeNameToken = null;\r
+        DeleteNodeLang deleteNodelang = new DeleteNodeLang(dataBroker, tenantManage);\r
+    objNodeNameToken = jj_consume_token(ID);\r
+    jj_consume_token(SEMICOLON);\r
+    {if (true) return deleteNodelang.DeleteNodeHandling(userId, objNodeNameToken.image);}\r
+    throw new Error("Missing return statement in function");\r
+  }\r
+\r
+  static final public String DeleteConnection(UserId userId, DataBroker dataBroker, TenantManage tenantManage) throws ParseException {\r
+        Token objConnNameToken = null;\r
+        DeleteConnectionLang deleteConnectionlang = new DeleteConnectionLang(dataBroker, tenantManage);\r
+    objConnNameToken = jj_consume_token(ID);\r
+    jj_consume_token(SEMICOLON);\r
+    {if (true) return deleteConnectionlang.DeleteConnectionHandling(userId, objConnNameToken.image);}\r
+    throw new Error("Missing return statement in function");\r
+  }\r
+\r
+  static final public String DeleteFlow(UserId userId, DataBroker dataBroker, TenantManage tenantManage) throws ParseException {\r
+        Token objFlowNameToken = null;\r
+        DeleteFlowLang deleteFlowlang = new DeleteFlowLang(dataBroker, tenantManage);\r
+    objFlowNameToken = jj_consume_token(ID);\r
+    jj_consume_token(SEMICOLON);\r
+    {if (true) return deleteFlowlang.DeleteFlowHandling(userId, objFlowNameToken.image);}\r
     throw new Error("Missing return statement in function");\r
   }\r
 \r
   static final public String DeleteOperation(UserId userId, DataBroker dataBroker, TenantManage tenantManage) throws ParseException {\r
-        String strReturn = null;\r
         Token objOperationNameToken = null;\r
         DeleteOperationLang deleteOperationlang = new DeleteOperationLang(dataBroker, tenantManage);\r
     objOperationNameToken = jj_consume_token(ID);\r
     jj_consume_token(SEMICOLON);\r
-    strReturn = deleteOperationlang.DeleteOperationHandling(userId, objOperationNameToken.image);\r
-    {if (true) return strReturn;}\r
+    {if (true) return deleteOperationlang.DeleteOperationHandling(userId, objOperationNameToken.image);}\r
     throw new Error("Missing return statement in function");\r
   }\r
 \r
@@ -1290,6 +1121,302 @@ public class NEMOparser implements NEMOparserConstants {
     throw new Error("Missing return statement in function");\r
   }\r
 \r
+  static final public LinkedHashMap<String,String> conditionTarget() throws ParseException {\r
+  Token objCondTarget = null;\r
+  Token objRangeLeft = null;\r
+  Token objRangeRight = null;\r
+  LinkedHashMap<String,String> targetValue = new LinkedHashMap<String,String>();\r
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+    case ID:\r
+      objCondTarget = jj_consume_token(ID);\r
+        targetValue.put(objCondTarget.image,"string");\r
+      break;\r
+    case TIMEVAL:\r
+      objCondTarget = jj_consume_token(TIMEVAL);\r
+        targetValue.put(objCondTarget.image,"string");\r
+      break;\r
+    case FULLTIME:\r
+      objCondTarget = jj_consume_token(FULLTIME);\r
+        targetValue.put(objCondTarget.image,"string");\r
+      break;\r
+    case UNUMBER:\r
+      objCondTarget = jj_consume_token(UNUMBER);\r
+        targetValue.put(objCondTarget.image,"integer");\r
+      break;\r
+    case LPAREN:\r
+      jj_consume_token(LPAREN);\r
+      objRangeLeft = jj_consume_token(UNUMBER);\r
+      jj_consume_token(COMMA);\r
+      objRangeRight = jj_consume_token(UNUMBER);\r
+      jj_consume_token(RPAREN);\r
+        targetValue.put(objRangeLeft.image+","+objRangeRight.image,"range");\r
+      break;\r
+    default:\r
+      jj_la1[55] = jj_gen;\r
+      jj_consume_token(-1);\r
+      throw new ParseException();\r
+    }\r
+    {if (true) return targetValue;}\r
+    throw new Error("Missing return statement in function");\r
+  }\r
+\r
+  static final public LinkedHashMap<String,String> property() throws ParseException {\r
+  Token objPropertyValueToken = null;\r
+  Token objRangeLeft = null;\r
+  Token objRangeRight = null;\r
+  LinkedHashMap<String,String> propertyvalue= new LinkedHashMap<String,String>();\r
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+    case LPAREN:\r
+    case UNUMBER:\r
+    case ID:\r
+    case TEMPID:\r
+    case IPV4PREF:\r
+    case TIMEVAL:\r
+    case FULLTIME:\r
+    case ETHADDR:\r
+    case IPV4ADDR:\r
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+      case ID:\r
+      case TEMPID:\r
+      case IPV4PREF:\r
+      case TIMEVAL:\r
+      case FULLTIME:\r
+      case ETHADDR:\r
+      case IPV4ADDR:\r
+        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+        case ID:\r
+          objPropertyValueToken = jj_consume_token(ID);\r
+                  propertyvalue.put(objPropertyValueToken.image, "string");\r
+          break;\r
+        case ETHADDR:\r
+          objPropertyValueToken = jj_consume_token(ETHADDR);\r
+                  propertyvalue.put(objPropertyValueToken.image, "string");\r
+          break;\r
+        case IPV4PREF:\r
+          objPropertyValueToken = jj_consume_token(IPV4PREF);\r
+                  propertyvalue.put(objPropertyValueToken.image, "string");\r
+          break;\r
+        case IPV4ADDR:\r
+          objPropertyValueToken = jj_consume_token(IPV4ADDR);\r
+                  propertyvalue.put(objPropertyValueToken.image, "string");\r
+          break;\r
+        case TIMEVAL:\r
+          objPropertyValueToken = jj_consume_token(TIMEVAL);\r
+                  propertyvalue.put(objPropertyValueToken.image, "string");\r
+          break;\r
+        case FULLTIME:\r
+          objPropertyValueToken = jj_consume_token(FULLTIME);\r
+                  propertyvalue.put(objPropertyValueToken.image, "string");\r
+          break;\r
+        case TEMPID:\r
+          objPropertyValueToken = jj_consume_token(TEMPID);\r
+                  propertyvalue.put(objPropertyValueToken.image, "string");\r
+          break;\r
+        default:\r
+          jj_la1[56] = jj_gen;\r
+          jj_consume_token(-1);\r
+          throw new ParseException();\r
+        }\r
+        break;\r
+      case UNUMBER:\r
+        objPropertyValueToken = jj_consume_token(UNUMBER);\r
+             propertyvalue.put(objPropertyValueToken.image, "integer");\r
+        break;\r
+      case LPAREN:\r
+        jj_consume_token(LPAREN);\r
+        objRangeLeft = jj_consume_token(UNUMBER);\r
+        jj_consume_token(COMMA);\r
+        objRangeRight = jj_consume_token(UNUMBER);\r
+        jj_consume_token(RPAREN);\r
+            propertyvalue.put(objRangeLeft.image+","+objRangeRight.image,"range");\r
+        break;\r
+      default:\r
+        jj_la1[57] = jj_gen;\r
+        jj_consume_token(-1);\r
+        throw new ParseException();\r
+      }\r
+      break;\r
+    default:\r
+      jj_la1[58] = jj_gen;\r
+          LinkedHashMap<String,String> multiProperty = nodeMultiProperty();\r
+          for (String value : multiProperty.keySet())\r
+          {\r
+            propertyvalue.put(value, multiProperty.get(value));\r
+          }\r
+    }\r
+  {if (true) return propertyvalue;}\r
+    throw new Error("Missing return statement in function");\r
+  }\r
+\r
+  static final public LinkedHashMap<String,String> nodeMultiProperty() throws ParseException {\r
+  Token objPropertyValueToken = null;\r
+  Token objRangeLeft = null;\r
+  Token objRangeRight = null;\r
+  LinkedHashMap<String,String> propertyvalue= new LinkedHashMap<String,String>();\r
+    jj_consume_token(LBRACKET);\r
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+    case ID:\r
+      objPropertyValueToken = jj_consume_token(ID);\r
+            propertyvalue.put(objPropertyValueToken.image, "string");\r
+      label_19:\r
+      while (true) {\r
+        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+        case COMMA:\r
+          ;\r
+          break;\r
+        default:\r
+          jj_la1[59] = jj_gen;\r
+          break label_19;\r
+        }\r
+        jj_consume_token(COMMA);\r
+        objPropertyValueToken = jj_consume_token(ID);\r
+            propertyvalue.put(objPropertyValueToken.image, "string");\r
+      }\r
+      break;\r
+    case TEMPID:\r
+      objPropertyValueToken = jj_consume_token(TEMPID);\r
+            propertyvalue.put(objPropertyValueToken.image, "string");\r
+      label_20:\r
+      while (true) {\r
+        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+        case COMMA:\r
+          ;\r
+          break;\r
+        default:\r
+          jj_la1[60] = jj_gen;\r
+          break label_20;\r
+        }\r
+        jj_consume_token(COMMA);\r
+        objPropertyValueToken = jj_consume_token(TEMPID);\r
+            propertyvalue.put(objPropertyValueToken.image, "string");\r
+      }\r
+      break;\r
+    case ETHADDR:\r
+      objPropertyValueToken = jj_consume_token(ETHADDR);\r
+            propertyvalue.put(objPropertyValueToken.image, "string");\r
+      label_21:\r
+      while (true) {\r
+        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+        case COMMA:\r
+          ;\r
+          break;\r
+        default:\r
+          jj_la1[61] = jj_gen;\r
+          break label_21;\r
+        }\r
+        jj_consume_token(COMMA);\r
+        objPropertyValueToken = jj_consume_token(ETHADDR);\r
+            propertyvalue.put(objPropertyValueToken.image, "string");\r
+      }\r
+      break;\r
+    case IPV4PREF:\r
+      objPropertyValueToken = jj_consume_token(IPV4PREF);\r
+            propertyvalue.put(objPropertyValueToken.image, "string");\r
+      label_22:\r
+      while (true) {\r
+        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+        case COMMA:\r
+          ;\r
+          break;\r
+        default:\r
+          jj_la1[62] = jj_gen;\r
+          break label_22;\r
+        }\r
+        jj_consume_token(COMMA);\r
+        objPropertyValueToken = jj_consume_token(IPV4PREF);\r
+            propertyvalue.put(objPropertyValueToken.image, "string");\r
+      }\r
+      break;\r
+    case IPV4ADDR:\r
+      objPropertyValueToken = jj_consume_token(IPV4ADDR);\r
+            propertyvalue.put(objPropertyValueToken.image, "string");\r
+      label_23:\r
+      while (true) {\r
+        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+        case COMMA:\r
+          ;\r
+          break;\r
+        default:\r
+          jj_la1[63] = jj_gen;\r
+          break label_23;\r
+        }\r
+        jj_consume_token(COMMA);\r
+        objPropertyValueToken = jj_consume_token(IPV4ADDR);\r
+            propertyvalue.put(objPropertyValueToken.image, "string");\r
+      }\r
+      break;\r
+    case TIMEVAL:\r
+      objPropertyValueToken = jj_consume_token(TIMEVAL);\r
+            propertyvalue.put(objPropertyValueToken.image, "string");\r
+      label_24:\r
+      while (true) {\r
+        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+        case COMMA:\r
+          ;\r
+          break;\r
+        default:\r
+          jj_la1[64] = jj_gen;\r
+          break label_24;\r
+        }\r
+        jj_consume_token(COMMA);\r
+        objPropertyValueToken = jj_consume_token(TIMEVAL);\r
+            propertyvalue.put(objPropertyValueToken.image, "string");\r
+      }\r
+      break;\r
+    case FULLTIME:\r
+      objPropertyValueToken = jj_consume_token(FULLTIME);\r
+            propertyvalue.put(objPropertyValueToken.image, "string");\r
+      label_25:\r
+      while (true) {\r
+        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+        case COMMA:\r
+          ;\r
+          break;\r
+        default:\r
+          jj_la1[65] = jj_gen;\r
+          break label_25;\r
+        }\r
+        jj_consume_token(COMMA);\r
+        objPropertyValueToken = jj_consume_token(FULLTIME);\r
+            propertyvalue.put(objPropertyValueToken.image, "string");\r
+      }\r
+      break;\r
+    case UNUMBER:\r
+      objPropertyValueToken = jj_consume_token(UNUMBER);\r
+            propertyvalue.put(objPropertyValueToken.image, "integer");\r
+      label_26:\r
+      while (true) {\r
+        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+        case COMMA:\r
+          ;\r
+          break;\r
+        default:\r
+          jj_la1[66] = jj_gen;\r
+          break label_26;\r
+        }\r
+        jj_consume_token(COMMA);\r
+        objPropertyValueToken = jj_consume_token(UNUMBER);\r
+            propertyvalue.put(objPropertyValueToken.image, "integer");\r
+      }\r
+      break;\r
+    case LPAREN:\r
+      jj_consume_token(LPAREN);\r
+      objRangeLeft = jj_consume_token(UNUMBER);\r
+      jj_consume_token(COMMA);\r
+      objRangeRight = jj_consume_token(UNUMBER);\r
+      jj_consume_token(RPAREN);\r
+        propertyvalue.put(objRangeLeft.image+","+objRangeRight.image,"range");\r
+      break;\r
+    default:\r
+      jj_la1[67] = jj_gen;\r
+      jj_consume_token(-1);\r
+      throw new ParseException();\r
+    }\r
+    jj_consume_token(RBRACKET);\r
+   {if (true) return propertyvalue;}\r
+    throw new Error("Missing return statement in function");\r
+  }\r
+\r
   static private boolean jj_initialized_once = false;\r
   /** Generated Token Manager. */\r
   static public NEMOparserTokenManager token_source;\r
@@ -1300,7 +1427,7 @@ public class NEMOparser implements NEMOparserConstants {
   static public Token jj_nt;\r
   static private int jj_ntk;\r
   static private int jj_gen;\r
-  static final private int[] jj_la1 = new int[55];\r
+  static final private int[] jj_la1 = new int[68];\r
   static private int[] jj_la1_0;\r
   static private int[] jj_la1_1;\r
   static private int[] jj_la1_2;\r
@@ -1310,13 +1437,13 @@ public class NEMOparser implements NEMOparserConstants {
       jj_la1_init_2();\r
    }\r
    private static void jj_la1_init_0() {\r
-      jj_la1_0 = new int[] {0xe000000,0x1e000000,0x40000000,0x40000000,0x40,0x0,0x100,0x40,0x100,0x40,0x100,0x40,0x100,0x0,0x40,0x0,0x100,0x40,0x100,0x40,0x100,0x40,0x100,0x0,0x100,0x40,0x100,0x100,0x40,0x100,0x40,0x100,0x40,0x100,0x0,0x4000,0x1f8000,0x100,0x7000,0x7000,0xf8000,0x100,0x0,0x500,0x140,0x140,0x20,0x40,0x500,0x140,0x140,0x20,0x0,0x80000000,0x0,};\r
+      jj_la1_0 = new int[] {0xe000000,0x1e000000,0x20000000,0x20000000,0x40,0x80000000,0x40,0x0,0x0,0x40,0x0,0x0,0x40,0x0,0x40,0x40,0x0,0x4000,0x1f8000,0x7000,0x7000,0x1f8000,0x0,0x20,0x40,0x20,0x0,0x0,0x40,0x0,0x20000000,0x20000000,0x40,0x80000000,0x40,0x0,0x40,0x0,0x40,0x0,0x40,0x40,0x0,0x4000,0x1f8000,0x7000,0x7000,0x1f8000,0x0,0x20,0x40,0x20,0x0,0xc0000000,0x0,0x100,0x0,0x100,0x100,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x100,};\r
    }\r
    private static void jj_la1_init_1() {\r
-      jj_la1_1 = new int[] {0x0,0x400,0x54,0x54,0x0,0x1,0x18b00000,0x0,0x18b00000,0x0,0x8b00000,0x0,0x8b00000,0x2,0x0,0x8,0x300000,0x0,0x300000,0x0,0x300000,0x0,0x300000,0x2,0x18b00000,0x0,0x18b00000,0x300000,0x0,0x300000,0x0,0x300000,0x0,0x300000,0x2,0x0,0x0,0x6300000,0x0,0x0,0x0,0x6300000,0x100,0x100000,0x100000,0x100000,0x0,0x0,0x100000,0x100000,0x100000,0x0,0x200,0x2f13ab,0x800,};\r
+      jj_la1_1 = new int[] {0x0,0x200,0x8002a,0x2a,0x0,0x0,0x0,0x1,0x3000000,0x0,0x3000000,0x4,0x0,0x1,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x80,0x0,0x0,0x0,0x100,0x700000,0x0,0x700000,0x2a,0x2a,0x0,0x0,0x0,0x1,0x0,0x4,0x0,0x1,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x80,0x0,0x0,0x0,0x100,0x10789d5,0x400,0x61800000,0xeb000000,0xeb800000,0xeb800000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xeb800000,};\r
    }\r
    private static void jj_la1_init_2() {\r
-      jj_la1_2 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};\r
+      jj_la1_2 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x1,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,};\r
    }\r
 \r
   /** Constructor with InputStream. */\r
@@ -1337,7 +1464,7 @@ public class NEMOparser implements NEMOparserConstants {
     token = new Token();\r
     jj_ntk = -1;\r
     jj_gen = 0;\r
-    for (int i = 0; i < 55; i++) jj_la1[i] = -1;\r
+    for (int i = 0; i < 68; i++) jj_la1[i] = -1;\r
   }\r
 \r
   /** Reinitialise. */\r
@@ -1351,7 +1478,7 @@ public class NEMOparser implements NEMOparserConstants {
     token = new Token();\r
     jj_ntk = -1;\r
     jj_gen = 0;\r
-    for (int i = 0; i < 55; i++) jj_la1[i] = -1;\r
+    for (int i = 0; i < 68; i++) jj_la1[i] = -1;\r
   }\r
 \r
   /** Constructor. */\r
@@ -1368,7 +1495,7 @@ public class NEMOparser implements NEMOparserConstants {
     token = new Token();\r
     jj_ntk = -1;\r
     jj_gen = 0;\r
-    for (int i = 0; i < 55; i++) jj_la1[i] = -1;\r
+    for (int i = 0; i < 68; i++) jj_la1[i] = -1;\r
   }\r
 \r
   /** Reinitialise. */\r
@@ -1378,7 +1505,7 @@ public class NEMOparser implements NEMOparserConstants {
     token = new Token();\r
     jj_ntk = -1;\r
     jj_gen = 0;\r
-    for (int i = 0; i < 55; i++) jj_la1[i] = -1;\r
+    for (int i = 0; i < 68; i++) jj_la1[i] = -1;\r
   }\r
 \r
   /** Constructor with generated Token Manager. */\r
@@ -1394,7 +1521,7 @@ public class NEMOparser implements NEMOparserConstants {
     token = new Token();\r
     jj_ntk = -1;\r
     jj_gen = 0;\r
-    for (int i = 0; i < 55; i++) jj_la1[i] = -1;\r
+    for (int i = 0; i < 68; i++) jj_la1[i] = -1;\r
   }\r
 \r
   /** Reinitialise. */\r
@@ -1403,7 +1530,7 @@ public class NEMOparser implements NEMOparserConstants {
     token = new Token();\r
     jj_ntk = -1;\r
     jj_gen = 0;\r
-    for (int i = 0; i < 55; i++) jj_la1[i] = -1;\r
+    for (int i = 0; i < 68; i++) jj_la1[i] = -1;\r
   }\r
 \r
   static private Token jj_consume_token(int kind) throws ParseException {\r
@@ -1454,12 +1581,12 @@ public class NEMOparser implements NEMOparserConstants {
   /** Generate ParseException. */\r
   static public ParseException generateParseException() {\r
     jj_expentries.clear();\r
-    boolean[] la1tokens = new boolean[72];\r
+    boolean[] la1tokens = new boolean[76];\r
     if (jj_kind >= 0) {\r
       la1tokens[jj_kind] = true;\r
       jj_kind = -1;\r
     }\r
-    for (int i = 0; i < 55; i++) {\r
+    for (int i = 0; i < 68; i++) {\r
       if (jj_la1[i] == jj_gen) {\r
         for (int j = 0; j < 32; j++) {\r
           if ((jj_la1_0[i] & (1<<j)) != 0) {\r
@@ -1474,7 +1601,7 @@ public class NEMOparser implements NEMOparserConstants {
         }\r
       }\r
     }\r
-    for (int i = 0; i < 72; i++) {\r
+    for (int i = 0; i < 76; i++) {\r
       if (la1tokens[i]) {\r
         jj_expentry = new int[1];\r
         jj_expentry[0] = i;\r