svn commit: r219413 - in /jakarta/bcel/trunk/src/java/org/apache/bcel: classfile/JavaClass.java util/ClassQueue.java util/ClassVector.java

[email protected]
Newsgroups gmane.comp.jakarta.bcel.devel
Message-ID <[email protected]>
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();
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.