public class SourceFile extends SyntaxTreeNode
Modifier and Type | Field and Description |
---|---|
private java.util.Hashtable<java.lang.String,java.lang.String> |
baseTypeTranslationTable
Table zum Ãbersetzen der nicht implementierten Base-Types:
Ãberall im Compiler wird statt bspw. int Integer verwendet
d.h. 1+2 liefert ein Integer
Deshalb benötigen wir hier eine Tabelle, mit der man die von
der JRE gelieferten Base-Typen (int,char, etc) und die Objekt-
Typen umwandeln können
|
protected static Logger |
codegenlog |
private ImportDeclarations |
imports
HOTI 4.5.06
Beinhaltet alle Imports des aktuell geparsten Files
in Form einer UsedId
|
protected static Logger |
inferencelog |
Menge<Interface> |
InterfaceVektor |
Menge<Class> |
KlassenVektor |
private static boolean |
LOAD_BASIC_ASSUMPTIONS_FROM_JRE |
private UsedId |
pkgName |
private static boolean |
READ_BASE_TYPE_SUPERCLASSES_FROM_JRE
Wenn dieses Flag auf false ist, werden für alle Basisklassen (definiert
durch die Hashtable baseTypeTranslationTable) KEINE Superklassen geladen.
|
private static boolean |
READ_IMPORTED_SUPERCLASSES_FROM_JRE |
static boolean |
READ_OBJECT_SUPERCLASSES_FROM_JRE |
parent
Constructor and Description |
---|
SourceFile()
Die SourceFile repräsntiert eine zu einem Syntaxbaum eingelesene Java-Datei.
|
SourceFile(Menge<Class> classDefinitions) |
Modifier and Type | Method and Description |
---|---|
void |
addElement(AClassOrInterface e)
Fuegt ein neues Element (Interface oder Klasse) hinzu.
|
void |
addImports(ImportDeclarations imports) |
private boolean |
containsString(Menge<UsedId> searchMenge,
java.lang.String searchString) |
private Pair |
createPairFromClassAndSuperclass(Class baseClass,
Type superclass,
Menge classParaOrg,
Menge superclassParaOrg,
TypeAssumptions ass)
Erstellt ein Typ-Paar, welches im 1.
|
private Type |
createTypeFromJavaGenericType(java.lang.reflect.Type type,
java.lang.Class<?> cl,
java.util.Hashtable<java.lang.String,GenericTypeVar> jreSpiderRegistry,
Class parentClass) |
Menge<SyntaxTreeNode> |
getChildren() |
java.util.Iterator<Class> |
getClassIterator() |
ImportDeclarations |
getImports() |
java.util.Iterator<Interface> |
getInterfaceIterator() |
int |
getOffset() |
UsedId |
getPackageName()
Erzeugt f�r jede Klasse einen Menge, in den Referenzen auf die GenericTypeVars
dieser Klasse gespeichert werden.
|
SyntaxTreeNode |
getParent() |
TypeAssumptions |
getPublicFieldAssumptions() |
private Class |
getSuperClassOfJREClass(java.lang.Class<?> x,
TypeAssumptions ass) |
int |
getVariableLength() |
private boolean |
isBaseType(java.lang.String type) |
private TypeAssumptions |
makeBasicAssumptions()
Erzeugt die Anfangsinformationen �ber bereits bekannte Klassen.
|
private TypeAssumptions |
makeBasicAssumptionsFromJRE(Menge<UsedId> imports,
boolean withSubtypes)
Erstellt die Assumptions der standardmäÃig importierten Packages (java.lang.) sowie der von imports übergebenen Klassen zusammen.
|
FC_TTO |
makeFC(TypeAssumptions ass)
Erstellt die Finite Closure
|
void |
parserPostProcessing(SyntaxTreeNode parent)
Wird nach dem Parsen aufgerufen.
|
private void |
removeBasicAssumptions()
L�scht die Anfangsinformation wieder aus dem Klassenvektor
Author: J�rg B�uerle |
void |
setFileName(java.lang.String filename)
Deprecated.
|
private void |
setImports(ImportDeclarations newImports) |
void |
setPackageName(UsedId pkgName) |
Menge<TypeinferenceResultSet> |
typeReconstruction(TypeAssumptions globalAssumptions)
Tyrekonstruktionsalgorithmus: ruft f�r jede Klasse den Algorithmus TRProg auf.
|
addTypeInsertPoints, equals, getDescription, getGTVDeclarationContext, getMatchingParentNode, getParentClass, seesType
private static final boolean LOAD_BASIC_ASSUMPTIONS_FROM_JRE
public static final boolean READ_OBJECT_SUPERCLASSES_FROM_JRE
private static final boolean READ_BASE_TYPE_SUPERCLASSES_FROM_JRE
private static final boolean READ_IMPORTED_SUPERCLASSES_FROM_JRE
protected static Logger codegenlog
protected static Logger inferencelog
private UsedId pkgName
private ImportDeclarations imports
private java.util.Hashtable<java.lang.String,java.lang.String> baseTypeTranslationTable
public SourceFile()
public void addElement(AClassOrInterface e)
c
- private Pair createPairFromClassAndSuperclass(Class baseClass, Type superclass, Menge classParaOrg, Menge superclassParaOrg, TypeAssumptions ass)
public FC_TTO makeFC(TypeAssumptions ass)
public TypeAssumptions getPublicFieldAssumptions()
public Menge<TypeinferenceResultSet> typeReconstruction(TypeAssumptions globalAssumptions) throws CTypeReconstructionException
CTypeReconstructionException
- Wenn was schief l�uftprivate TypeAssumptions makeBasicAssumptionsFromJRE(Menge<UsedId> imports, boolean withSubtypes)
imports
- withSuptypes
- - Gibt an, ob auch die subklassen der Packages den Assumptions angefügt werden sollen.private Class getSuperClassOfJREClass(java.lang.Class<?> x, TypeAssumptions ass)
private boolean isBaseType(java.lang.String type)
private boolean containsString(Menge<UsedId> searchMenge, java.lang.String searchString)
private Type createTypeFromJavaGenericType(java.lang.reflect.Type type, java.lang.Class<?> cl, java.util.Hashtable<java.lang.String,GenericTypeVar> jreSpiderRegistry, Class parentClass)
private TypeAssumptions makeBasicAssumptions()
java.lang.ClassNotFoundException
private void setImports(ImportDeclarations newImports)
private void removeBasicAssumptions()
public UsedId getPackageName()
res
- /
/*private void addClassNamesAndGenericsToRR(CTypeReconstructionResult res){
Iteratorpublic void setPackageName(UsedId pkgName)
public void addImports(ImportDeclarations imports)
public ImportDeclarations getImports()
public java.util.Iterator<Class> getClassIterator()
public java.util.Iterator<Interface> getInterfaceIterator()
public void parserPostProcessing(SyntaxTreeNode parent)
SyntaxTreeNode
parserPostProcessing
in class SyntaxTreeNode
public SyntaxTreeNode getParent()
getParent
in class SyntaxTreeNode
public Menge<SyntaxTreeNode> getChildren()
getChildren
in class SyntaxTreeNode
@Deprecated public void setFileName(java.lang.String filename)
filename
- - Der Name der eingelesenen JavaDateipublic int getOffset()
public int getVariableLength()