Author: mvw
Date: 2010-06-11 23:14:51-0700
New Revision: 18445

Modified:
   trunk/src/argouml-app/src/org/argouml/i18n/parsing.properties
   
trunk/src/argouml-app/src/org/argouml/notation/providers/uml/TransitionNotationUml.java
   
trunk/src/argouml-app/tests/org/argouml/notation/providers/uml/TestTransitionNotationUml.java

Log:
Cover all cases AND issue 5983.

Modified: trunk/src/argouml-app/src/org/argouml/i18n/parsing.properties
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/i18n/parsing.properties?view=diff&pathrev=18445&r1=18444&r2=18445
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/i18n/parsing.properties       
(original)
+++ trunk/src/argouml-app/src/org/argouml/i18n/parsing.properties       
2010-06-11 23:14:51-0700
@@ -198,6 +198,6 @@
 parsing.error.operation.type-expr = Type cannot be an expression
 parsing.error.operation.unexpected-end-operation = Unexpected end of operation
 
-parsing.error.transition.found-bracket-instead-slash = Found a ']' after a '/'
+parsing.error.transition.found-bracket-instead-slash = Found a '/' within [ ]
 parsing.error.transition.no-matching-square-brackets = No matching brackets [] 
found.
 parsing.error.transition.no-matching-brackets = No matching brackets () found.

Modified: 
trunk/src/argouml-app/src/org/argouml/notation/providers/uml/TransitionNotationUml.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/notation/providers/uml/TransitionNotationUml.java?view=diff&pathrev=18445&r1=18444&r2=18445
==============================================================================
--- 
trunk/src/argouml-app/src/org/argouml/notation/providers/uml/TransitionNotationUml.java
     (original)
+++ 
trunk/src/argouml-app/src/org/argouml/notation/providers/uml/TransitionNotationUml.java
     2010-06-11 23:14:51-0700
@@ -133,7 +133,7 @@
             String msg = 
"parsing.error.transition.no-matching-square-brackets";
             throw new ParseException(Translator.localize(msg), 0);
         }
-        if ((c >= 0) && (c < b)) {
+        if ((c >= 0) && (c < b) && (c > a) && (a > 0)) {
             String msg = 
"parsing.error.transition.found-bracket-instead-slash";
             throw new ParseException(Translator.localize(msg), 0);
         }
@@ -142,11 +142,6 @@
         String eg = s1[0].trim();
         String[] s2 = eg.split("\\[", 2);
         
-        if (s1.length > 1)  {
-            if (s1[1].trim().length() > 0) {
-                parseEffect(trans, s1[1].trim()); 
-            }
-        }
         if (s2[0].trim().length() > 0) {
             parseTrigger(trans, s2[0].trim());
         }
@@ -159,6 +154,11 @@
                 }
             }
         }
+        if (s1.length > 1)  {
+            if (s1[1].trim().length() > 0) {
+                parseEffect(trans, s1[1].trim()); 
+            }
+        }
         return trans;
     }
 

Modified: 
trunk/src/argouml-app/tests/org/argouml/notation/providers/uml/TestTransitionNotationUml.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/tests/org/argouml/notation/providers/uml/TestTransitionNotationUml.java?view=diff&pathrev=18445&r1=18444&r2=18445
==============================================================================
--- 
trunk/src/argouml-app/tests/org/argouml/notation/providers/uml/TestTransitionNotationUml.java
       (original)
+++ 
trunk/src/argouml-app/tests/org/argouml/notation/providers/uml/TestTransitionNotationUml.java
       2010-06-11 23:14:51-0700
@@ -116,6 +116,10 @@
         checkGenerated(aState, "[]/", false, false, false, false);
         checkGenerated(aState, "[ guard ]", false, true, false, false);
         checkGenerated(aState, "trigger()/", true, false, false, false);
+        checkGenerated(aState, "tr/i[gg]er", true, false, true, false);
+        // Inspired by issue 5983:
+        checkGenerated(aState, "ev1 / printf(\"got [i==1]\");", true, false, 
+                true, false);
     }
 
     /**
@@ -130,7 +134,6 @@
         checkGenerated(aState, "trigger(/)", false, false, false, true);
         checkGenerated(aState, "tr]jhgf[ijh", false, false, false, true);
         checkGenerated(aState, "tr]/e", false, false, false, true);
-        checkGenerated(aState, "tr/i[gg]er", false, false, false, true);
         checkGenerated(aState, "tri[g/g]er", false, false, false, true);
     }

------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2619946

To unsubscribe from this discussion, e-mail: 
[[email protected]].

Reply via email to