- 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
- trunk/qdox/src/main/java/com/thoughtworks/qdox/model/DefaultJavaClass.java
- trunk/qdox/src/main/java/com/thoughtworks/qdox/model/JavaClass.java
- trunk/qdox/src/main/java/com/thoughtworks/qdox/model/Type.java
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:
