Title: [1288] trunk/qdox/src/main/java/com/thoughtworks/qdox/model: Add JavaClass.getInterfaces(), optimize foreach loops
Revision
1288
Author
rfscholte
Date
2011-08-09 16:30:48 -0500 (Tue, 09 Aug 2011)

Log Message

Add JavaClass.getInterfaces(), optimize foreach loops

Modified Paths


Diff

Modified: trunk/qdox/src/main/java/com/thoughtworks/qdox/model/DefaultJavaClass.java (1287 => 1288)

--- trunk/qdox/src/main/java/com/thoughtworks/qdox/model/DefaultJavaClass.java	2011-08-09 21:27:16 UTC (rev 1287)
+++ trunk/qdox/src/main/java/com/thoughtworks/qdox/model/DefaultJavaClass.java	2011-08-09 21:30:48 UTC (rev 1288)
@@ -137,7 +137,6 @@
         }
         return result;
     }
-    
 
     /* (non-Javadoc)
      * @see com.thoughtworks.qdox.model.JavaClass#getImplements()
@@ -146,13 +145,24 @@
         return implementz;
     }
 
-    /**
-     * @since 1.3
+
+    /*
+     * (non-Javadoc)
+     * @see com.thoughtworks.qdox.model.JavaClass#getImplementedInterfaces()
      */
     public List<JavaClass> getImplementedInterfaces() 
     {
-        return new LinkedList<JavaClass>( getImplements() );
+        return new LinkedList<JavaClass>( implementz );
     }
+    
+    /*
+     * (non-Javadoc)
+     * @see com.thoughtworks.qdox.model.JavaClass#getInterfaces()
+     */
+    public List<JavaClass> getInterfaces()
+    {
+        return new LinkedList<JavaClass>( implementz );
+    }
 
     /* (non-Javadoc)
      * @see com.thoughtworks.qdox.model.JavaClass#getCodeBlock()

Modified: trunk/qdox/src/main/java/com/thoughtworks/qdox/model/JavaClass.java (1287 => 1288)

--- trunk/qdox/src/main/java/com/thoughtworks/qdox/model/JavaClass.java	2011-08-09 21:27:16 UTC (rev 1287)
+++ trunk/qdox/src/main/java/com/thoughtworks/qdox/model/JavaClass.java	2011-08-09 21:30:48 UTC (rev 1288)
@@ -77,6 +77,15 @@
      * @since 1.3
      */
     List<JavaClass> getImplementedInterfaces();
+    
+    /**
+     * Equivalent of {@link java.lang.Class#getInterfaces()}
+     *  Determines the interfaces implemented by the class or interface represented by this object.     * 
+     * 
+     * @return a list of interfaces, never <code>null</code>
+     * @since 2.0
+     */
+    List<JavaClass> getInterfaces();
 
     String getCodeBlock();
 

Modified: trunk/qdox/src/main/java/com/thoughtworks/qdox/model/Type.java (1287 => 1288)

--- trunk/qdox/src/main/java/com/thoughtworks/qdox/model/Type.java	2011-08-09 21:27:16 UTC (rev 1287)
+++ trunk/qdox/src/main/java/com/thoughtworks/qdox/model/Type.java	2011-08-09 21:30:48 UTC (rev 1288)
@@ -20,6 +20,7 @@
  */
 
 import java.io.Serializable;
+import java.util.Collections;
 import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
@@ -143,47 +144,58 @@
      * @since 1.8
      * @return generic type representation for code usage 
      */
-    public String getGenericValue() {
-    	StringBuffer result = new StringBuffer(getValue());
-    	if(actualArgumentTypes != null && actualArgumentTypes.size() > 0) {
-    		result.append("<");
-    		for(Iterator<Type> iter = actualArgumentTypes.iterator();iter.hasNext();) {
-    			result.append(iter.next().getGenericValue());
-    			if(iter.hasNext()) {
-    				result.append(",");
-    			}
-    		}
-    		result.append(">");
-    	}
-    	for (int i = 0; i < dimensions; i++) 
-    	{
-    	    result.append("[]");
-    	}
+    public String getGenericValue()
+    {
+        StringBuffer result = new StringBuffer( getValue() );
+        if ( actualArgumentTypes != null && actualArgumentTypes.size() > 0 )
+        {
+            result.append( "<" );
+            for ( Iterator<Type> iter = actualArgumentTypes.iterator(); iter.hasNext(); )
+            {
+                result.append( iter.next().getGenericValue() );
+                if ( iter.hasNext() )
+                {
+                    result.append( "," );
+                }
+            }
+            result.append( ">" );
+        }
+        for ( int i = 0; i < dimensions; i++ )
+        {
+            result.append( "[]" );
+        }
         return result.toString();
     }
     
-    protected String getGenericValue(List<TypeVariable> typeVariableList) {
-    	StringBuffer result = new StringBuffer(getResolvedValue(typeVariableList));
-    	if(actualArgumentTypes != null && actualArgumentTypes.size() > 0) {
-    		for(int index = 0;index < actualArgumentTypes.size(); index++) {
-    			result.append(actualArgumentTypes.get(index).resolve(typeVariableList));   			
-    			if(index + 1 != actualArgumentTypes.size()) {
-    				result.append(",");
-    			}
-    		}
-    	}
+    protected String getGenericValue( List<TypeVariable> typeVariableList )
+    {
+        StringBuffer result = new StringBuffer( getResolvedValue( typeVariableList ) );
+        if ( actualArgumentTypes != null && actualArgumentTypes.size() > 0 )
+        {
+            for ( Iterator<Type> iter = actualArgumentTypes.iterator(); iter.hasNext(); )
+            {
+                result.append( iter.next().resolve( typeVariableList ) );
+                if ( iter.hasNext() )
+                {
+                    result.append( "," );
+                }
+            }
+        }
         return result.toString();
     }
     
-    protected String getResolvedValue(List<TypeVariable> typeParameters) {
-    	String result = getValue();
-    	for(TypeVariable typeParameter : typeParameters) {
-			if(typeParameter.getName().equals(getValue())) {
-				result = typeParameter.getBounds().get( 0 ).getValue();
-				break;
-			}
-		}
-    	return result;
+    protected String getResolvedValue( List<TypeVariable> typeParameters )
+    {
+        String result = getValue();
+        for ( TypeVariable typeParameter : typeParameters )
+        {
+            if ( typeParameter.getName().equals( getValue() ) )
+            {
+                result = typeParameter.getBounds().get( 0 ).getValue();
+                break;
+            }
+        }
+        return result;
     }
     
     protected TypeVariable resolve( List<TypeVariable> typeParameters )
@@ -369,8 +381,10 @@
         Type result = this;
 
         int typeIndex = -1;
-        for(ListIterator<TypeVariable> iter = parentClass.getTypeParameters().listIterator();iter.hasNext();) {
-            if(iter.next().getFullyQualifiedName().equals( getFullyQualifiedName())) {
+        for ( ListIterator<TypeVariable> iter = parentClass.getTypeParameters().listIterator(); iter.hasNext(); )
+        {
+            if ( iter.next().getFullyQualifiedName().equals( getFullyQualifiedName() ) )
+            {
                 typeIndex = iter.previousIndex();
                 break;
             }
@@ -379,21 +393,22 @@
         if ( typeIndex >= 0 )
         {
             String fqn = parentClass.getFullyQualifiedName();
-            if ( subclass.getSuperClass() != null && fqn.equals( subclass.getSuperClass().getFullyQualifiedName() ) ) {
-                result = subclass.getSuperClass().getActualTypeArguments().get(typeIndex);    
+            if ( subclass.getSuperClass() != null && fqn.equals( subclass.getSuperClass().getFullyQualifiedName() ) )
+            {
+                result = subclass.getSuperClass().getActualTypeArguments().get( typeIndex );
             }
             else if ( subclass.getImplementedInterfaces() != null )
             {
-                for ( int i = 0; i < subclass.getImplementedInterfaces().size(); i++ )
+                for ( Type implement : subclass.getImplements() )
                 {
-                    if ( fqn.equals( subclass.getImplements().get(i).getFullyQualifiedName() ) ) 
+                    if ( fqn.equals( implement.getFullyQualifiedName() ) )
                     {
-                        JavaClass argument = subclass.getImplementedInterfaces().get(i);
-                        result = subclass.getImplements().get(i).getActualTypeArguments().get(typeIndex).resolve(argument,argument);
+                        JavaClass argument = implement.getJavaClass();
+                        result = implement.getActualTypeArguments().get( typeIndex ).resolve( argument, argument );
                         break;
                     }
                 }
-                //no direct interface available, try indirect
+                // no direct interface available, try indirect
             }
         }
         
@@ -562,6 +577,11 @@
     {
         return resolveRealClass().getImplementedInterfaces();
     }
+    
+    public List<JavaClass> getInterfaces()
+    {
+        return resolveRealClass().getImplementedInterfaces();
+    }
 
     public String getNamedParameter( String tagName, String parameterName )
     {


To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to