public class ImportsTracker
extends java.lang.Object
getNameMap()
, then further non-conflicting imports are allowed until the final import list is
constructed by calling freeze(String)
.Modifier and Type | Field and Description |
---|---|
private boolean |
m_frozen
Further imports blocked flag.
|
private java.util.TreeSet |
m_importedTypes
Set of imported classes.
|
private java.util.Map |
m_localTypeName
Set of unqualified type full names.
|
private java.util.Map |
m_nameMap
Map from class names in imports set to names used (
null until getNameMap() called). |
private java.lang.String |
m_packageName
Package name for classes in source.
|
private java.util.Map |
m_unqualifiedNameType
Map from simple names of unqualified types to full names.
|
Constructor and Description |
---|
ImportsTracker(java.lang.String pkgname)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
protected boolean |
addImport(java.lang.String fqname,
boolean force)
Add import for class.
|
void |
addLocalType(java.lang.String name,
java.lang.String fqname)
Add local definition name to those visible in class.
|
java.util.List |
freeze(java.lang.String cname)
Freeze imports and return a list of imports.
|
java.lang.String |
getName(java.lang.String type)
Get the name to be used for a type.
|
java.util.Map |
getNameMap()
Get map from imported fully-qualified class names to short names.
|
boolean |
isQualified(java.lang.String fqname)
Check if type needs qualified references.
|
private final java.lang.String m_packageName
private final java.util.TreeSet m_importedTypes
private final java.util.Map m_unqualifiedNameType
private final java.util.Map m_localTypeName
private java.util.Map m_nameMap
null
until getNameMap()
called).private boolean m_frozen
public ImportsTracker(java.lang.String pkgname)
pkgname
- containing package namepublic void addLocalType(java.lang.String name, java.lang.String fqname)
name
- simple class namefqname
- fully qualified class nameprotected boolean addImport(java.lang.String fqname, boolean force)
fqname
- fully qualified class nameforce
- force replacement of current importtrue
if added as importpublic boolean isQualified(java.lang.String fqname)
fqname
- fully qualified class nametrue
if needs qualificationpublic java.util.Map getNameMap()
public java.lang.String getName(java.lang.String type)
getNameMap()
, which in
turn blocks removing any imports later.type
- fully-qualified type namepublic java.util.List freeze(java.lang.String cname)
cname
- simple name of class (used to identify inner class references)