@@ -18,21 +18,22 @@ static boolean isExpression(String token) {
1818 token = token .toLowerCase ();
1919
2020 return
21+ token .startsWith (ELEMENT_EQUALS_EXPRESSION .toLowerCase ()) ||
22+ token .startsWith (ELEMENT_NOT_EQUALS_EXPRESSION .toLowerCase ()) ||
2123 token .startsWith (ELEMENT_TYPE_EQUALS_EXPRESSION .toLowerCase ()) ||
22- token .startsWith (ELEMENT_TAG_EQUALS_EXPRESSION .toLowerCase ()) ||
23- token .startsWith (ELEMENT_TAG_NOT_EQUALS_EXPRESSION .toLowerCase ()) ||
24- token .startsWith (ELEMENT_TECHNOLOGY_EQUALS_EXPRESSION .toLowerCase ()) ||
25- token .startsWith (ELEMENT_TECHNOLOGY_NOT_EQUALS_EXPRESSION .toLowerCase ()) ||
26- token .matches (ELEMENT_PROPERTY_EQUALS_EXPRESSION ) ||
27- token .startsWith (ELEMENT_PARENT_EQUALS_EXPRESSION .toLowerCase ()) ||
28- token .startsWith (RELATIONSHIP ) || token .endsWith (RELATIONSHIP ) || token .contains (RELATIONSHIP ) ||
29- token .startsWith (ELEMENT_EQUALS_EXPRESSION ) ||
30- token .startsWith (RELATIONSHIP_TAG_EQUALS_EXPRESSION .toLowerCase ()) ||
31- token .startsWith (RELATIONSHIP_TAG_NOT_EQUALS_EXPRESSION .toLowerCase ()) ||
32- token .matches (RELATIONSHIP_PROPERTY_EQUALS_EXPRESSION ) ||
33- token .startsWith (RELATIONSHIP_SOURCE_EQUALS_EXPRESSION .toLowerCase ()) ||
34- token .startsWith (RELATIONSHIP_DESTINATION_EQUALS_EXPRESSION .toLowerCase ()) ||
35- token .startsWith (RELATIONSHIP_EQUALS_EXPRESSION );
24+ token .startsWith (ELEMENT_TAG_EQUALS_EXPRESSION .toLowerCase ()) ||
25+ token .startsWith (ELEMENT_TAG_NOT_EQUALS_EXPRESSION .toLowerCase ()) ||
26+ token .startsWith (ELEMENT_TECHNOLOGY_EQUALS_EXPRESSION .toLowerCase ()) ||
27+ token .startsWith (ELEMENT_TECHNOLOGY_NOT_EQUALS_EXPRESSION .toLowerCase ()) ||
28+ token .matches (ELEMENT_PROPERTY_EQUALS_EXPRESSION ) ||
29+ token .startsWith (ELEMENT_PARENT_EQUALS_EXPRESSION .toLowerCase ()) ||
30+ token .startsWith (RELATIONSHIP ) || token .endsWith (RELATIONSHIP ) || token .contains (RELATIONSHIP ) ||
31+ token .startsWith (RELATIONSHIP_TAG_EQUALS_EXPRESSION .toLowerCase ()) ||
32+ token .startsWith (RELATIONSHIP_TAG_NOT_EQUALS_EXPRESSION .toLowerCase ()) ||
33+ token .matches (RELATIONSHIP_PROPERTY_EQUALS_EXPRESSION ) ||
34+ token .startsWith (RELATIONSHIP_SOURCE_EQUALS_EXPRESSION .toLowerCase ()) ||
35+ token .startsWith (RELATIONSHIP_DESTINATION_EQUALS_EXPRESSION .toLowerCase ()) ||
36+ token .startsWith (RELATIONSHIP_EQUALS_EXPRESSION );
3637 }
3738
3839
@@ -71,6 +72,24 @@ private Set<ModelItem> evaluateExpression(String expr, DslContext context) {
7172 } else {
7273 modelItems .addAll (parseIdentifier (expr , context ));
7374 }
75+ } else if (expr .startsWith (ELEMENT_NOT_EQUALS_EXPRESSION )) {
76+ expr = expr .substring (ELEMENT_NOT_EQUALS_EXPRESSION .length ());
77+
78+ if (isExpression (expr )) {
79+ Set <ModelItem > mi = evaluateExpression (expr , context );
80+ context .getWorkspace ().getModel ().getElements ().forEach (element -> {
81+ if (!mi .contains (element )) {
82+ modelItems .add (element );
83+ }
84+ });
85+ } else {
86+ Set <ModelItem > mi = parseIdentifier (expr , context );
87+ context .getWorkspace ().getModel ().getElements ().forEach (element -> {
88+ if (!mi .contains (element )) {
89+ modelItems .add (element );
90+ }
91+ });
92+ }
7493 } else if (expr .startsWith (RELATIONSHIP_EQUALS_EXPRESSION )) {
7594 expr = expr .substring (RELATIONSHIP_EQUALS_EXPRESSION .length ());
7695
0 commit comments