public class TypePlaceholder extends ObjectType
Hashtable abgelegt.| Modifier and Type | Field and Description |
|---|---|
private static Logger |
log |
private static java.util.Hashtable<JavaClassName,TypePlaceholder> |
m_TypePlaceholdersRegistry |
private SyntaxTreeNode |
parent |
private static java.lang.String |
strNextName |
| Modifier | Constructor and Description |
|---|---|
private |
TypePlaceholder(java.lang.String typeName,
SyntaxTreeNode parent)
Privater Konstruktor - Eine TypePlaceholder-Variable wird �ber die
Factory-Methode
fresh() erzeugt. |
| Modifier and Type | Method and Description |
|---|---|
static TypePlaceholder |
backdoorCreate(java.lang.String name)
Backdoor-Hilfsfunktion, die f�r
makeFC() und unify()
ben�tigt wird, zum Erzeugen eines TypePlaceholders, der nicht in
der zentralen Registry eingetragen wird. |
static TypePlaceholder |
backdoorFresh()
Backdoor-Hilfsfunktion, die f�r
makeFC() und unify()
ben�tigt wird, um neue TypePlaceholders zu erzeugen. |
void |
backdoorSetName(java.lang.String varName)
Backdoor-Hilfsfunktion, die f�r
makeFC() und unify()
ben�tigt wird, um den Namen eines TypePlaceholders zu ver�ndern. |
TypePlaceholder |
clone()
Diese Methode sollte nur sehr sparsam und mit Vorsicht verwendet werden, da die
Registrierung neuer Listener �ber die zentrale Instanz in der Registry laufen
muss.
|
static void |
deleteRegistry()
L�scht die komplette Registry von TypePlaceholders.
|
boolean |
equals(java.lang.Object obj)
Author: J�rg B�uerle
|
static TypePlaceholder |
fresh(java.lang.String name,
SyntaxTreeNode parent)
Generiert einen neuen TPH mit einem bestimmten Namen.
|
static TypePlaceholder |
fresh(SyntaxTreeNode parent) |
java.lang.String |
get_Name() |
static TypePlaceholder |
getInstance(java.lang.String name)
Statische Methode, um einen TypePlaceholder aus der Registry zu holen.
|
Menge<TypePlaceholder> |
getInvolvedTypePlaceholder()
Sammelt alle TypePlaceholder, welche in diesem Typ vorkommen.
|
Menge<TypeInsertPoint> |
getTypeInsertPoints(ResultSet result)
Berechnet die InsertPoints dieses TypePlaceholders.
|
Menge<TypePlaceholder> |
getUnresolvedTPH(ResultSet resultSet)
Sucht nach TPHs in diesem Typ, denen das resultSet keinen Typ zuordnen kann.
|
private static void |
inc(int i)
Hilfsfunktion zur Berechnung eines neuen Namens
Author: J�rg B�uerle |
private static java.lang.String |
makeNewName()
Berechnet einen neuen, eindeutigen Namen f�r eine neue
TypePlaceholder. |
private static void |
manipulate(int nStelle,
char nWert)
Hilfsfunktion zur Berechnung eines neuen Namens.
|
JavaCodeResult |
printJavaCode(ResultSet resultSet) |
java.lang.String |
toString()
Author: J�rg B�uerle |
ConstraintType |
TYPE(TypeAssumptions ass,
SyntaxTreeNode parent)
Prüft ob der Typ in den Assumptions ass vorhanden ist.
|
applyResultSet, checkTYPE, get_UsedId, getChildren, getName, getOffset, getSimpleName, getSuperWildcardTypes, getVariableLength, involves, set_UsedId, setOffset, Type2Key, Type2StringaddTypeInsertPoints, getDescription, getGTVDeclarationContext, getMatchingParentNode, getParent, getParentClass, parserPostProcessing, seesTypeprivate static final Logger log
private static java.lang.String strNextName
private static java.util.Hashtable<JavaClassName,TypePlaceholder> m_TypePlaceholdersRegistry
private SyntaxTreeNode parent
private TypePlaceholder(java.lang.String typeName,
SyntaxTreeNode parent)
fresh() erzeugt.
typeName - Der Name der TypePlaceholder-Variablenpublic ConstraintType TYPE(TypeAssumptions ass, SyntaxTreeNode parent)
TypeTYPE in class Typeass - - Die Assumptions für den jeweiligen Kontext in dem sich der Typ befindet.
public ConstraintType checkType(TypeAssumptions ass, SyntaxTreeNode parent){
ConstraintType t = ass.getTypeFor(this, this);
if(t==null)
throw new TypeinferenceException("Der Typ "+this.getName()+" ist nicht korrekt", parent);
return t;
}public static TypePlaceholder getInstance(java.lang.String name)
name - Der Name des TypePlaceholdersnull, falls er nicht in der
Registry existiertpublic static TypePlaceholder fresh(java.lang.String name, SyntaxTreeNode parent)
name - public static TypePlaceholder fresh(SyntaxTreeNode parent)
listener - public Menge<TypePlaceholder> getInvolvedTypePlaceholder()
TypegetInvolvedTypePlaceholder in class Typeprivate static java.lang.String makeNewName()
TypePlaceholder. private static void inc(int i)
i - private static void manipulate(int nStelle,
char nWert)
nStelle - nWert - public boolean equals(java.lang.Object obj)
public static void deleteRegistry()
MyCompiler.init() aufgerufen werden!!!
public TypePlaceholder clone()
clone in class ObjectTypepublic java.lang.String toString()
Typepublic static TypePlaceholder backdoorFresh()
makeFC() und unify()
ben�tigt wird, um neue TypePlaceholders zu erzeugen. Die erzeugten Variablen
werden nicht registriert und sind v�llig losgel�st vom abstrakten Syntaxbaum.
TypePlaceholderpublic void backdoorSetName(java.lang.String varName)
makeFC() und unify()
ben�tigt wird, um den Namen eines TypePlaceholders zu ver�ndern.TypePlaceholder darf nicht Teil des abstrakten
Syntaxbaumes sein!!! Es muss sicher gestellt werden, dass die betreffende
TypePlaceholder nicht �ber die Methode fresh(),
sondern �ber backdoorCreate() oder backdoorClone()
erzeugt worden ist.
varName - Der Name des zu erzeugenden TypePlaceholderspublic static TypePlaceholder backdoorCreate(java.lang.String name)
makeFC() und unify()
ben�tigt wird, zum Erzeugen eines TypePlaceholders, der nicht in
der zentralen Registry eingetragen wird. Die erzeugte Variablen ist somit v�llig
losgel�st vom abstrakten Syntaxbaum. name - public JavaCodeResult printJavaCode(ResultSet resultSet)
printJavaCode in class Typepublic Menge<TypeInsertPoint> getTypeInsertPoints(ResultSet result)
result - Das ResultSet das den einzusetzenden Typ für diesen TPH enthält.TypeInsertPointpublic Menge<TypePlaceholder> getUnresolvedTPH(ResultSet resultSet)
TypegetUnresolvedTPH in class Type