Author: bobtarling
Date: 2008-04-29 15:48:32-0700
New Revision: 14520

Modified:
   trunk/src/argouml-app/src/org/argouml/cognitive/ToDoItem.java
   trunk/src/argouml-app/src/org/argouml/uml/cognitive/UMLToDoItem.java

Log:
Move knowledge of other subsystems out of ToDoItem

Modified: trunk/src/argouml-app/src/org/argouml/cognitive/ToDoItem.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/cognitive/ToDoItem.java?view=diff&rev=14520&p1=trunk/src/argouml-app/src/org/argouml/cognitive/ToDoItem.java&p2=trunk/src/argouml-app/src/org/argouml/cognitive/ToDoItem.java&r1=14519&r2=14520
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/cognitive/ToDoItem.java       
(original)
+++ trunk/src/argouml-app/src/org/argouml/cognitive/ToDoItem.java       
2008-04-29 15:48:32-0700
@@ -30,10 +30,7 @@
 
 import org.argouml.cognitive.critics.Wizard;
 import org.argouml.cognitive.critics.WizardItem;
-import org.argouml.model.Model;
 import org.argouml.util.CollectionUtil;
-import org.tigris.gef.base.Diagram;
-import org.tigris.gef.presentation.Fig;
 
 /**
  * This class defines the feedback items that can be placed on the
@@ -179,17 +176,11 @@
         theWizard = c.makeWizard(this);
     }
 
-    //TODO: The cognitive system should not be aware of any other
-    // system. Find a better way to do this.
-    private void checkArgument(Object dm) {
-        if (!Model.getFacade().isAUMLElement(dm)
-                && !(dm instanceof Fig)
-                && !(dm instanceof Diagram)) {
-
-            throw new IllegalArgumentException(
-                    "The offender must be a model element, "
-                    + "a Fig or a Diagram");
-        }
+    /**
+     * Override in subclass to validate the offender is an expected type.
+     * @param dm the offender (why dm?)
+     */
+    protected void checkArgument(Object dm) {
     }
 
     /**
@@ -334,14 +325,10 @@
      * TODO: Offenders need to be more strongly typed. - tfm 20070630
      */
     public ListSet getOffenders() {
+        // TODO: should not be using assert here but I don't want to change to
+        // IllegalStateException at lead up to a release as I don't know how
+        // much testing is done with assert on.
         assert theOffenders != null;
-        // TODO: The cognitive system should not be aware of any other
-        // system. Find a better way to do this. We should not use
-        // assert on public methods.
-        assert theOffenders.size() <= 0
-               || Model.getFacade().isAUMLElement(theOffenders.get(0))
-               || theOffenders.get(0) instanceof Fig
-               || theOffenders.get(0) instanceof Diagram;
         return theOffenders;
     }
 

Modified: trunk/src/argouml-app/src/org/argouml/uml/cognitive/UMLToDoItem.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/cognitive/UMLToDoItem.java?view=diff&rev=14520&p1=trunk/src/argouml-app/src/org/argouml/uml/cognitive/UMLToDoItem.java&p2=trunk/src/argouml-app/src/org/argouml/uml/cognitive/UMLToDoItem.java&r1=14519&r2=14520
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/cognitive/UMLToDoItem.java        
(original)
+++ trunk/src/argouml-app/src/org/argouml/uml/cognitive/UMLToDoItem.java        
2008-04-29 15:48:32-0700
@@ -41,7 +41,10 @@
 import org.argouml.cognitive.ToDoItem;
 import org.argouml.kernel.Project;
 import org.argouml.kernel.ProjectManager;
+import org.argouml.model.Model;
 import org.argouml.ui.ProjectActions;
+import org.tigris.gef.base.Diagram;
+import org.tigris.gef.presentation.Fig;
 
 
 /**
@@ -170,4 +173,30 @@
             }
         }
     }
+    
+    @Override
+    public ListSet getOffenders() {
+        final ListSet offenders = getOffenders();
+        // TODO: should not be using assert here but I don't want to change to
+        // IllegalStateException at lead up to a release as I don't know how
+        // much testing is done with assert on.
+        assert offenders.size() <= 0
+        || Model.getFacade().isAUMLElement(offenders.get(0))
+        || offenders.get(0) instanceof Fig
+        || offenders.get(0) instanceof Diagram;
+        return offenders;
+    }
+    
+    @Override
+    protected void checkArgument(Object dm) {
+        if (!Model.getFacade().isAUMLElement(dm)
+                && !(dm instanceof Fig)
+                && !(dm instanceof Diagram)) {
+
+            throw new IllegalArgumentException(
+                    "The offender must be a model element, "
+                    + "a Fig or a Diagram");
+        }
+    }
+
 }

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to