Author: dbrosius
Date: Sun Jul 17 15:42:58 2005
New Revision: 219413

URL: http://svn.apache.org/viewcvs?rev=219413&view=rev
Log:
fix JavaClass.getAllInterfaces to only return one copy of each interface it or 
it's super classes implement. As a by product, deprecate the dubious helper 
class 'ClassVector'

Modified:
    jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/JavaClass.java
    jakarta/bcel/trunk/src/java/org/apache/bcel/util/ClassQueue.java
    jakarta/bcel/trunk/src/java/org/apache/bcel/util/ClassVector.java

Modified: jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/JavaClass.java
URL: 
http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/JavaClass.java?rev=219413&r1=219412&r2=219413&view=diff
==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/JavaClass.java 
(original)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/JavaClass.java Sun 
Jul 17 15:42:58 2005
@@ -23,12 +23,16 @@
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
 import java.util.StringTokenizer;
+import java.util.TreeSet;
+
 import org.apache.bcel.Constants;
 import org.apache.bcel.generic.Type;
 import org.apache.bcel.util.BCELComparator;
 import org.apache.bcel.util.ClassQueue;
-import org.apache.bcel.util.ClassVector;
 import org.apache.bcel.util.SyntheticRepository;
 
 /**
@@ -798,15 +802,15 @@
    */
   public JavaClass[] getSuperClasses() throws ClassNotFoundException {
     JavaClass clazz = this;
-    ClassVector vec = new ClassVector();
+    List allSuperClasses = new ArrayList();
 
     for (clazz = clazz.getSuperClass();
       clazz != null;
       clazz = clazz.getSuperClass()) {
-      vec.addElement(clazz);
+       allSuperClasses.add(clazz);
     }
 
-    return vec.toArray();
+    return (JavaClass[])allSuperClasses.toArray(new 
JavaClass[allSuperClasses.size()]);
   }
 
   /**
@@ -828,7 +832,7 @@
    */
   public JavaClass[] getAllInterfaces() throws ClassNotFoundException {
     ClassQueue queue = new ClassQueue();
-    ClassVector vec = new ClassVector();
+    Set allInterfaces = new TreeSet();
 
     queue.enqueue(this);
 
@@ -839,7 +843,7 @@
       JavaClass[] interfaces = clazz.getInterfaces();
 
       if (clazz.isInterface()) {
-        vec.addElement(clazz);
+         allInterfaces.add(clazz);
       } else {
         if (souper != null) {
           queue.enqueue(souper);
@@ -851,7 +855,7 @@
       }
     }
 
-    return vec.toArray();
+    return (JavaClass[])allInterfaces.toArray(new 
JavaClass[allInterfaces.size()]);
   }
   
   /**

Modified: jakarta/bcel/trunk/src/java/org/apache/bcel/util/ClassQueue.java
URL: 
http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/util/ClassQueue.java?rev=219413&r1=219412&r2=219413&view=diff
==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/util/ClassQueue.java (original)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/util/ClassQueue.java Sun Jul 17 
15:42:58 2005
@@ -25,7 +25,6 @@
  *
  * @version $Id$
  * @author <A HREF="mailto:[EMAIL PROTECTED]">M. Dahm</A> 
- * @see ClassVector
 */
 public class ClassQueue implements java.io.Serializable {
   protected LinkedList vec  = new LinkedList();

Modified: jakarta/bcel/trunk/src/java/org/apache/bcel/util/ClassVector.java
URL: 
http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/util/ClassVector.java?rev=219413&r1=219412&r2=219413&view=diff
==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/util/ClassVector.java (original)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/util/ClassVector.java Sun Jul 
17 15:42:58 2005
@@ -25,7 +25,8 @@
  *
  * @version $Id$
  * @author <A HREF="mailto:[EMAIL PROTECTED]">M. Dahm</A> 
- * @see ClassQueue
+ * 
+ * @deprecated as of 5.1.1 - 7/17/2005
 */
 public class ClassVector implements java.io.Serializable {
   protected ArrayList vec = new ArrayList();



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

Reply via email to