|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectmycompiler.mytype.Type
mycompiler.mytype.TyploseVariable
public class TyploseVariable
Repräsentiert einen Typparameter für einen vom Programmierer nicht angegeben Typ.
Jede TyploseVariable besitzt einen eindeutigen Namen aus einem Namenspool und
ist in einer zentralen Registry, d.h. einer Hashtable abgelegt.
| Field Summary |
|---|
| Fields inherited from class mycompiler.mytype.Type |
|---|
hamaDebug, name, used |
| Method Summary | |
|---|---|
void |
addReplacementListener(ITypeReplacementListener listener)
Author: Jörg Bäuerle |
static TyploseVariable |
backdoorCreate(java.lang.String name)
Backdoor-Hilfsfunktion, die für makeFC() und unify() benötigt wird,
zum Erzeugen einer TyplosenVariable, die nicht in der zentralen Registry eingetragen
wird. |
static TyploseVariable |
backdoorFresh()
Backdoor-Hilfsfunktion, die für makeFC() und unify() benötigt wird,
um neue typlose Variablen zu erzeugen. |
void |
backdoorSetName(java.lang.String varName)
Backdoor-Hilfsfunktion, die für makeFC() und unify() benötigt wird,
um den Namen einer typlosen Variablen zu verändern. |
TyploseVariable |
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. |
boolean |
containsListener(ITypeReplacementListener listener)
Author: Jörg Bäuerle |
static void |
deleteRegistry()
Löscht die komplette Registry von TyplosenVariablen. |
boolean |
equals(java.lang.Object obj)
Author: Jörg Bäuerle |
void |
fireReplaceTypeEvent(CReplaceTypeEvent e)
Author: Jörg Bäuerle |
static TyploseVariable |
fresh()
Erzeugt eine neue TyploseVariable mit einem eindeutigen Namen. |
static TyploseVariable |
getInstance(java.lang.String name)
Statische Methode, um einen typlose Variable aus der Registry zu holen. |
java.util.Vector<java.lang.Integer> |
getLineNumbers()
|
java.util.Iterator<ITypeReplacementListener> |
getReplacementListeners()
Author: Jörg Bäuerle |
void |
removeAllReplacementListeners()
Author: Jörg Bäuerle |
void |
removeReplacementListener(ITypeReplacementListener listener)
Author: Jörg Bäuerle |
void |
replaceWithType(Type newType)
Diese Methode geht alle TypeReplacmentListener durch und tauscht über deren Callback-Methode diesen Typ gegen den neuen aus. |
| Methods inherited from class mycompiler.mytype.Type |
|---|
get_codegen_Type, get_Name, get_UsedId, getName, set_UsedId, toString, Type2Key, Type2String |
| Methods inherited from class java.lang.Object |
|---|
finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Method Detail |
|---|
public static TyploseVariable getInstance(java.lang.String name)
name - Der Name der typlosen Variablen
null, falls sie nicht in der Registry
existiertpublic static TyploseVariable fresh()
TyploseVariable mit einem eindeutigen Namen. Die
erzeugte Instanz ist die einzig im Syntaxbaum existierende Instanz dieser Variablen.
TyploseVariablepublic boolean equals(java.lang.Object obj)
equals in class TypeObject -
public void addReplacementListener(ITypeReplacementListener listener)
addReplacementListener in interface IReplaceTypeEventProviderlistener - public boolean containsListener(ITypeReplacementListener listener)
containsListener in interface IReplaceTypeEventProviderlistener -
public void removeReplacementListener(ITypeReplacementListener listener)
removeReplacementListener in interface IReplaceTypeEventProviderlistener - public void removeAllReplacementListeners()
removeAllReplacementListeners in interface IReplaceTypeEventProviderpublic void fireReplaceTypeEvent(CReplaceTypeEvent e)
fireReplaceTypeEvent in interface IReplaceTypeEventProvidere - public java.util.Iterator<ITypeReplacementListener> getReplacementListeners()
getReplacementListeners in interface IReplaceTypeEventProviderpublic void replaceWithType(Type newType)
newType - public java.util.Vector<java.lang.Integer> getLineNumbers()
public static void deleteRegistry()
MyCompiler.init() aufgerufen werden!!!
public TyploseVariable clone()
clone in class Typepublic static TyploseVariable backdoorFresh()
makeFC() und unify() benötigt wird,
um neue typlose Variablen zu erzeugen. Die erzeugten Variablen werden nicht registriert und
sind völlig losgelöst vom abstrakten Syntaxbaum.
TyploseVariablepublic void backdoorSetName(java.lang.String varName)
makeFC() und unify() benötigt wird,
um den Namen einer typlosen Variablen zu verändern.TyploseVariable darf nicht Teil des abstrakten Syntaxbaumes sein!!!
Es muss sicher gestellt werden, dass die betreffende TyploseVariable nicht über die Methode
fresh(), sondern über backdoorCreate() oder backdoorClone()
erzeugt worden ist.
varName - Der Name der zu erzeugenden TyplosenVariablepublic static TyploseVariable backdoorCreate(java.lang.String name)
makeFC() und unify() benötigt wird,
zum Erzeugen einer TyplosenVariable, die nicht in der zentralen Registry eingetragen
wird. Die erzeugte Variablen ist somit völlig losgelöst vom abstrakten Syntaxbaum.
name -
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||