Package com.thoughtworks.qdox.type
Class TypeResolver
- java.lang.Object
-
- com.thoughtworks.qdox.type.TypeResolver
-
public class TypeResolver extends java.lang.ObjectA per JavaClass resolver of types- Since:
- 2.0
-
-
Field Summary
Fields Modifier and Type Field Description private ClassLibraryclassLibraryprivate java.lang.StringdeclaringClassprivate java.util.Collection<java.lang.String>importsprivate java.lang.Stringpckgprivate static java.util.Set<java.lang.String>PRIMITIVE_TYPESprivate java.util.Map<java.lang.String,java.lang.String>resolvedTypeCache
-
Constructor Summary
Constructors Modifier Constructor Description privateTypeResolver(java.lang.String pckg, java.lang.String declaringClass, ClassLibrary classLibrary, java.util.Collection<java.lang.String> imports)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static TypeResolverbyClassName(java.lang.String binaryName, ClassLibrary classLibrary, java.util.Collection<java.lang.String> imports)static TypeResolverbyPackageName(java.lang.String binaryName, ClassLibrary classLibrary, java.util.Collection<java.lang.String> imports)Type resolver in case there's no declaring class, e.g.JavaClassgetJavaClass(java.lang.String binaryName)private java.lang.StringresolveFromLibrary(java.lang.String typeName)private java.lang.StringresolveFullyQualifiedType(java.lang.String typeName)private java.lang.StringresolveImportedType(java.lang.String importSpec, java.lang.String typeName, boolean fullMatch)JavaClassresolveJavaClass(java.lang.String typeName)java.lang.StringresolveType(java.lang.String typeName)private java.lang.StringresolveTypeInternal(java.lang.String typeName)Resolves a type name
-
-
-
Field Detail
-
PRIMITIVE_TYPES
private static final java.util.Set<java.lang.String> PRIMITIVE_TYPES
-
resolvedTypeCache
private final java.util.Map<java.lang.String,java.lang.String> resolvedTypeCache
-
pckg
private final java.lang.String pckg
-
declaringClass
private final java.lang.String declaringClass
-
classLibrary
private final ClassLibrary classLibrary
-
imports
private final java.util.Collection<java.lang.String> imports
-
-
Constructor Detail
-
TypeResolver
private TypeResolver(java.lang.String pckg, java.lang.String declaringClass, ClassLibrary classLibrary, java.util.Collection<java.lang.String> imports)
-
-
Method Detail
-
byPackageName
public static TypeResolver byPackageName(java.lang.String binaryName, ClassLibrary classLibrary, java.util.Collection<java.lang.String> imports)
Type resolver in case there's no declaring class, e.g. using extends, implements and annotations on a toplevel class- Parameters:
binaryName- the binary name of the packageclassLibrary- the class libraryimports- the imports, can benull- Returns:
- the typeResolver
-
byClassName
public static TypeResolver byClassName(java.lang.String binaryName, ClassLibrary classLibrary, java.util.Collection<java.lang.String> imports)
- Parameters:
binaryName- the class in which context a type is used.classLibrary- the class libraryimports- the imports, can benull- Returns:
- the typeResolver
-
resolveJavaClass
public JavaClass resolveJavaClass(java.lang.String typeName)
-
getJavaClass
public JavaClass getJavaClass(java.lang.String binaryName)
-
resolveType
public java.lang.String resolveType(java.lang.String typeName)
-
resolveTypeInternal
private java.lang.String resolveTypeInternal(java.lang.String typeName)
Resolves a type nameFollows the Java Language Specification, Version 3.0.
Current resolution order is:
- Single-Type-Import Declaration
- Type-Import-on-Demand Declaration
- Automatic Imports
- Parameters:
typeName- the name to resolve- Returns:
- the resolved type name, otherwise
null
-
resolveImportedType
private java.lang.String resolveImportedType(java.lang.String importSpec, java.lang.String typeName, boolean fullMatch)
-
resolveFromLibrary
private java.lang.String resolveFromLibrary(java.lang.String typeName)
-
resolveFullyQualifiedType
private java.lang.String resolveFullyQualifiedType(java.lang.String typeName)
-
-