Package com.thoughtworks.qdox.type
Class TypeResolver
- java.lang.Object
-
- com.thoughtworks.qdox.type.TypeResolver
-
public class TypeResolver extends java.lang.Object
A per JavaClass resolver of types- Since:
- 2.0
-
-
Field Summary
Fields Modifier and Type Field Description private ClassLibrary
classLibrary
private java.lang.String
declaringClass
private java.util.Collection<java.lang.String>
imports
private java.lang.String
pckg
private static java.util.Set<java.lang.String>
PRIMITIVE_TYPES
private java.util.Map<java.lang.String,java.lang.String>
resolvedTypeCache
-
Constructor Summary
Constructors Modifier Constructor Description private
TypeResolver(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 TypeResolver
byClassName(java.lang.String binaryName, ClassLibrary classLibrary, java.util.Collection<java.lang.String> imports)
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.JavaClass
getJavaClass(java.lang.String binaryName)
private java.lang.String
resolveFromLibrary(java.lang.String typeName)
private java.lang.String
resolveFullyQualifiedType(java.lang.String typeName)
private java.lang.String
resolveImportedType(java.lang.String importSpec, java.lang.String typeName, boolean fullMatch)
JavaClass
resolveJavaClass(java.lang.String typeName)
java.lang.String
resolveType(java.lang.String typeName)
private java.lang.String
resolveTypeInternal(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)
-
-