public class TypeResolver
extends java.lang.Object
Modifier and Type | Field and 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 |
Modifier | Constructor and Description |
---|---|
private |
TypeResolver(java.lang.String pckg,
java.lang.String declaringClass,
ClassLibrary classLibrary,
java.util.Collection<java.lang.String> imports) |
Modifier and Type | Method and 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
|
private static final java.util.Set<java.lang.String> PRIMITIVE_TYPES
private final java.util.Map<java.lang.String,java.lang.String> resolvedTypeCache
private final java.lang.String pckg
private final java.lang.String declaringClass
private final ClassLibrary classLibrary
private final java.util.Collection<java.lang.String> imports
private TypeResolver(java.lang.String pckg, java.lang.String declaringClass, ClassLibrary classLibrary, java.util.Collection<java.lang.String> imports)
public static TypeResolver byPackageName(java.lang.String binaryName, ClassLibrary classLibrary, java.util.Collection<java.lang.String> imports)
binaryName
- the binary name of the packageclassLibrary
- the class libraryimports
- the imports, can be null
public static TypeResolver byClassName(java.lang.String binaryName, ClassLibrary classLibrary, java.util.Collection<java.lang.String> imports)
binaryName
- the class in which context a type is used.classLibrary
- the class libraryimports
- the imports, can be null
public JavaClass resolveJavaClass(java.lang.String typeName)
public JavaClass getJavaClass(java.lang.String binaryName)
public java.lang.String resolveType(java.lang.String typeName)
private java.lang.String resolveTypeInternal(java.lang.String typeName)
Follows the Java Language Specification, Version 3.0.
Current resolution order is:
typeName
- the name to resolvenull
private java.lang.String resolveImportedType(java.lang.String importSpec, java.lang.String typeName, boolean fullMatch)
private java.lang.String resolveFromLibrary(java.lang.String typeName)
private java.lang.String resolveFullyQualifiedType(java.lang.String typeName)