## mycompiler.mytype
Class TyploseVariable

    java.lang.Object
      mycompiler.mytype.Type
          mycompiler.mytype.TyploseVariable

All Implemented Interfaces:
  IReplaceTypeEventProvider

    public class TyploseVariable

extends Type
implements IReplaceTypeEventProvider

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.

Version:
  $Date: 2005/06/28 19:19:06 $
Author:
  J�rg B�uerle

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.
`de.dhbwstuttgart.typeinference.Menge<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

### getInstance

    public static TyploseVariable getInstance(java.lang.String name)

  Statische Methode, um einen typlose Variable aus der Registry zu holen.
  Author: J�rg B�uerle

  Parameters:
    `name` - Der Name der typlosen Variablen
  Returns:
    Die typlose Variable oder `null`, falls sie nicht in der Registry existiert

### fresh

    public static TyploseVariable fresh()

  Erzeugt eine neue `TyploseVariable` mit einem eindeutigen Namen. Die erzeugte Instanz ist die einzig im Syntaxbaum existierende Instanz dieser Variablen.
  Author: J�rg B�uerle

  Returns:
    Die `TyploseVariable`

### equals

    public boolean equals(java.lang.Object obj)

  Author: J�rg B�uerle

  Overrides:
    `equals` in class `Type`
  Parameters:
    `Object` -
  Returns:

### addReplacementListener

    public void addReplacementListener(ITypeReplacementListener listener)

  Author: J�rg B�uerle

  Specified by:
    `addReplacementListener` in interface `IReplaceTypeEventProvider`
  Parameters:
    `listener` -

### containsListener

    public boolean containsListener(ITypeReplacementListener listener)

  Author: J�rg B�uerle

  Specified by:
    `containsListener` in interface `IReplaceTypeEventProvider`
  Parameters:
    `listener` -
  Returns:

### removeReplacementListener

    public void removeReplacementListener(ITypeReplacementListener listener)

  Author: J�rg B�uerle

  Specified by:
    `removeReplacementListener` in interface `IReplaceTypeEventProvider`
  Parameters:
    `listener` -

### removeAllReplacementListeners

    public void removeAllReplacementListeners()

  Author: J�rg B�uerle

  Specified by:
    `removeAllReplacementListeners` in interface `IReplaceTypeEventProvider`

### fireReplaceTypeEvent

    public void fireReplaceTypeEvent(CReplaceTypeEvent e)

  Author: J�rg B�uerle

  Specified by:
    `fireReplaceTypeEvent` in interface `IReplaceTypeEventProvider`
  Parameters:
    `e` -

### getReplacementListeners

    public java.util.Iterator<ITypeReplacementListener> getReplacementListeners()

  Author: J�rg B�uerle

  Specified by:
    `getReplacementListeners` in interface `IReplaceTypeEventProvider`
  Returns:

### replaceWithType

    public void replaceWithType(Type newType)

  Diese Methode geht alle TypeReplacmentListener durch und tauscht �ber deren Callback-Methode diesen Typ gegen den neuen aus.
  Author: J�rg B�uerle

  Parameters:
    `newType` -

### getLineNumbers

    public de.dhbwstuttgart.typeinference.Menge<java.lang.Integer> getLineNumbers()

### deleteRegistry

    public static void deleteRegistry()

  L�scht die komplette Registry von TyplosenVariablen. Sollte nur und ausschlie�lich von `MyCompiler.init()` aufgerufen werden!!!
  Author: J�rg B�uerle

### clone

    public 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.
  Diese Methode erzeugt eine Kopie dieser zentralen Instanz. Listener, die sich �ber diese Kopie registrieren, werden sp�ter nicht �ber Status�nderungen benachrichtigt, d.h. ihre TyplosenVariablen werden nicht substituiert.
  Author: J�rg B�uerle

  Overrides:
    `clone` in class `Type`
  Returns:

### backdoorFresh

    public static TyploseVariable backdoorFresh()

  Backdoor-Hilfsfunktion, die f�r `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.
  Author: J�rg B�uerle

  Returns:
    Eine neue `TyploseVariable`

### backdoorSetName

    public 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.
  ACHTUNG: Diese `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.
  Author: J�rg B�uerle

  Parameters:
    `varName` - Der Name der zu erzeugenden `TyplosenVariable`

### backdoorCreate

    public 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. Die erzeugte Variablen ist somit v�llig losgel�st vom abstrakten Syntaxbaum.
  Author: J�rg B�uerle

  Parameters:
    `name` -
  Returns: