svn commit: r16289 - trunk/src/argouml-app/src/org/argouml: cognitive/ui uml

Tom Morris <[email protected]>
Newsgroups gmane.comp.lang.uml.argouml.cvs
Message-ID <[email protected]>
Author: tfmorris
Date: 2008-12-07 13:07:36-0800
New Revision: 16289

Added:
   trunk/src/argouml-app/src/org/argouml/cognitive/ui/AbstractGoList2.java   (contents, props changed)
   trunk/src/argouml-app/src/org/argouml/uml/GenCompositeClasses2.java   (contents, props changed)
Modified:
   trunk/src/argouml-app/src/org/argouml/cognitive/ui/AbstractGoList.java
   trunk/src/argouml-app/src/org/argouml/uml/GenCompositeClasses.java

Log:
Deprecate the last couple things that use GEF Predicates and introduces versions that use the ArgoUML Predicate

Modified: trunk/src/argouml-app/src/org/argouml/cognitive/ui/AbstractGoList.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/cognitive/ui/AbstractGoList.java?view=diff&pathrev=16289&r1=16288&r2=16289
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/cognitive/ui/AbstractGoList.java	(original)
+++ trunk/src/argouml-app/src/org/argouml/cognitive/ui/AbstractGoList.java	2008-12-07 13:07:36-0800
@@ -35,7 +35,7 @@
 
 /**
  * @author MarkusK
- *
+ * @deprecated for 0.27.3 by tfmorris.  Use {@link AbstractGoList2}.
  */
 public abstract class AbstractGoList implements TreeModel {
 
@@ -50,6 +50,8 @@
 
     /**
      * @return the list predicate
+     * @deprecated for 0.27.3 by tfmorris.  Use 
+     * {@link AbstractGoList2#getPredicate()}.
      */
     public Predicate getListPredicate() {
         return listPredicate;

Added: trunk/src/argouml-app/src/org/argouml/cognitive/ui/AbstractGoList2.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/cognitive/ui/AbstractGoList2.java?view=markup&pathrev=16289
==============================================================================
--- (empty file)
+++ trunk/src/argouml-app/src/org/argouml/cognitive/ui/AbstractGoList2.java	2008-12-07 13:07:36-0800
@@ -0,0 +1,73 @@
+// $Id$
+// Copyright (c) 1996-2008 The Regents of the University of California. All
+// Rights Reserved. Permission to use, copy, modify, and distribute this
+// software and its documentation without fee, and without a written
+// agreement is hereby granted, provided that the above copyright notice
+// and this paragraph appear in all copies.  This software program and
+// documentation are copyrighted by The Regents of the University of
+// California. The software program and documentation are supplied "AS
+// IS", without any accompanying services from The Regents. The Regents
+// does not warrant that the operation of the program will be
+// uninterrupted or error-free. The end-user understands that the program
+// was developed for research purposes and is advised not to rely
+// exclusively on the program for any reason.  IN NO EVENT SHALL THE
+// UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
+// SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS,
+// ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
+// THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE. THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY
+// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE
+// PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF
+// CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT,
+// UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+
+/*
+ * Created on 21.10.2004
+ *
+ */
+package org.argouml.cognitive.ui;
+
+import javax.swing.tree.TreeModel;
+
+import org.argouml.util.Predicate;
+import org.argouml.util.PredicateTrue;
+
+/**
+ * @author MarkusK
+ *
+ */
+public abstract class AbstractGoList2 extends AbstractGoList implements
+        TreeModel {
+
+    private Predicate listPredicate = PredicateTrue.getInstance();
+
+    /**
+     * @param newPredicate the new list predicate
+     */
+    public void setListPredicate(Predicate newPredicate) {
+        listPredicate = newPredicate;
+    }
+
+    /**
+     * @return the list predicate
+     */
+    public Predicate getPredicate() {
+        return listPredicate;
+    }
+
+    /*
+     * @see javax.swing.tree.TreeModel#getRoot()
+     */
+    public Object getRoot() {
+        throw new UnsupportedOperationException();
+    }
+
+    /**
+     * @param r ignored
+     */
+    public void setRoot(Object r) { 
+        // does nothing
+    }
+
+}

Modified: trunk/src/argouml-app/src/org/argouml/uml/GenCompositeClasses.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/GenCompositeClasses.java?view=diff&pathrev=16289&r1=16288&r2=16289
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/GenCompositeClasses.java	(original)
+++ trunk/src/argouml-app/src/org/argouml/uml/GenCompositeClasses.java	2008-12-07 13:07:36-0800
@@ -25,6 +25,7 @@
 package org.argouml.uml;
 
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.Enumeration;
 import java.util.Iterator;
@@ -41,6 +42,7 @@
  *
  * @see org.argouml.uml.cognitive.critics.CrCircularComposition
  * @stereotype singleton
+ * @deprecated for 0.27.3 by tfmorris.  Use {@link GenCompositeClasses2}.
  */
 public class GenCompositeClasses implements ChildGenerator {
     /**
@@ -52,47 +54,62 @@
 
     /**
      * @return Returns the sINGLETON.
+     * @deprecated for 0.27.3 by tfmorris.  Use 
+     * {@link GenCompositeClasses2#getInstance()}.
      */
     public static GenCompositeClasses getSINGLETON() {
         return SINGLETON;
     }
     
-    /*
+    /**
      * @see org.tigris.gef.util.ChildGenerator#gen(java.lang.Object)
+     * @deprecated for 0.27.3 by tfmorris.  Use 
+     * {@link GenCompositeClasses2#childIterator(Object)}.
      */
     public Enumeration gen(Object o) {
-	List res = new ArrayList();
-	if (!(Model.getFacade().isAClassifier(o))) {
-	    return Collections.enumeration(res);
-	}
-	Object cls = o;
-	List ends = new ArrayList(Model.getFacade().getAssociationEnds(cls));
-	if (ends == null) {
-	    return Collections.enumeration(res);
-	}
-	Iterator assocEnds = ends.iterator();
-	while (assocEnds.hasNext()) {
-	    Object ae = assocEnds.next();
-	    if (Model.getAggregationKind().getComposite().equals(
-	            Model.getFacade().getAggregation(ae))) {
-		Object asc = Model.getFacade().getAssociation(ae);
-		ArrayList conn =
-		    new ArrayList(Model.getFacade().getConnections(asc));
-		if (conn == null || conn.size() != 2) {
-		    continue;
-		}
-		Object otherEnd =
-		    (ae == conn.get(0)) ? conn.get(1) : conn.get(0);
-		if (Model.getFacade().getType(ae)
-		        != Model.getFacade().getType(otherEnd)) {
-		    res.add(Model.getFacade().getType(otherEnd));
-		}
-	    }
-	}
-	return Collections.enumeration(res);
+        return Collections.enumeration(collectChildren(o));
     }
 
     /**
+     * Collect children.<p>
+     * TODO: Move this method to the subclass GenCompositeClasses2 when this
+     * deprecated class is removed.
+     * @param o the parent element
+     * @return a collection of children.
+     */
+    protected Collection collectChildren(Object o) {
+        List res = new ArrayList();
+        if (!(Model.getFacade().isAClassifier(o))) {
+            return res;
+        }
+        Object cls = o;
+        List ends = new ArrayList(Model.getFacade().getAssociationEnds(cls));
+        if (ends == null) {
+            return res;
+        }
+        Iterator assocEnds = ends.iterator();
+        while (assocEnds.hasNext()) {
+            Object ae = assocEnds.next();
+            if (Model.getAggregationKind().getComposite().equals(
+                    Model.getFacade().getAggregation(ae))) {
+                Object asc = Model.getFacade().getAssociation(ae);
+                ArrayList conn =
+                    new ArrayList(Model.getFacade().getConnections(asc));
+                if (conn == null || conn.size() != 2) {
+                    continue;
+                }
+                Object otherEnd =
+                    (ae == conn.get(0)) ? conn.get(1) : conn.get(0);
+                if (Model.getFacade().getType(ae)
+                        != Model.getFacade().getType(otherEnd)) {
+                    res.add(Model.getFacade().getType(otherEnd));
+                }
+            }
+        }
+        return res;
+    }
+    
+    /**
      * The UID.
      */
     private static final long serialVersionUID = -6027679124153204193L;

Added: trunk/src/argouml-app/src/org/argouml/uml/GenCompositeClasses2.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/GenCompositeClasses2.java?view=markup&pathrev=16289
==============================================================================
--- (empty file)
+++ trunk/src/argouml-app/src/org/argouml/uml/GenCompositeClasses2.java	2008-12-07 13:07:36-0800
@@ -0,0 +1,60 @@
+// $Id$
+// Copyright (c) 2008 The Regents of the University of California. All
+// Rights Reserved. Permission to use, copy, modify, and distribute this
+// software and its documentation without fee, and without a written
+// agreement is hereby granted, provided that the above copyright notice
+// and this paragraph appear in all copies. This software program and
+// documentation are copyrighted by The Regents of the University of
+// California. The software program and documentation are supplied "AS
+// IS", without any accompanying services from The Regents. The Regents
+// does not warrant that the operation of the program will be
+// uninterrupted or error-free. The end-user understands that the program
+// was developed for research purposes and is advised not to rely
+// exclusively on the program for any reason. IN NO EVENT SHALL THE
+// UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
+// SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS,
+// ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
+// THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE. THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY
+// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE
+// PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF
+// CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT,
+// UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+
+package org.argouml.uml;
+
+import java.util.Iterator;
+
+import org.argouml.util.ChildGenerator;
+
+/**
+ * Utility class to generate a list of the "children" of a class which are the
+ * other classes that are associated with the parent class, and that Association
+ * has a COMPOSITE end at the parent. This is used in one of the critics.
+ * 
+ * @see org.argouml.uml.cognitive.critics.CrCircularComposition
+ * @stereotype singleton
+ */
+public class GenCompositeClasses2 extends GenCompositeClasses implements
+        ChildGenerator {
+
+    /**
+     * This SINGLETON is used in CrCircularComposition.
+     *
+     */
+    private static final GenCompositeClasses2 SINGLETON =
+        new GenCompositeClasses2();
+
+    /**
+     * @return Return the singleton
+     */
+    public static GenCompositeClasses2 getInstance() {
+        return SINGLETON;
+    }
+    
+    public Iterator childIterator(Object parent) {
+        return collectChildren(parent).iterator();
+    }
+
+}

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

To unsubscribe from this discussion, e-mail: [[email protected]].
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.