schmitzm.io.dyntxt
Class DynamicElement

java.lang.Object
  extended by schmitzm.io.dyntxt.DynamicElement
Direct Known Subclasses:
DynamicBlock, DynamicField, StaticText

public abstract class DynamicElement
extends Object

Diese Klasse repraesentiert ein allgemeines dynamisches Text-Element. Jedes Element kann durch eine alphanumerische ID identifiziert werden (muss nicht eindeutig sein!!).
Bis auf das Wurzelelement sollten allen Text-Elementen ein Vater-Element zugeordnet sein, damit ein einfaches abarbeiten des Wurzel-Elements automatisch die Abarbeitung aller untergeordneten Elemente nach sich zieht.

Version:
1.0
Author:
Martin Schmitz

Constructor Summary
DynamicElement(String id)
          Erzeugt ein neues dynamisches Root-Element.
DynamicElement(String id, DynamicElement father)
          Erzeugt ein neues dynamisches Text-Element.
 
Method Summary
 DynamicElement getFather()
          Liefert das uebergeordnete dynamische Element.
 DynamicElement getFather(Class cls)
          Liefert die naechste uebergeordnete Element.
 String getID()
          Liefert die ID des dynamischen Elements.
 boolean isRoot()
          Checkt, ob das Element ein Vater-Element hat (false) oder nicht.
abstract  void performElement(DynamicInputProvider inputProvider, OutputStream output)
          Fuehrt das dynamische Element (und alle etwaigen darin enthaltenen Elemente) aus.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DynamicElement

public DynamicElement(String id)
Erzeugt ein neues dynamisches Root-Element.

Parameters:
id - identifieziert den Block gegenueber dem DynamicInputProvider

DynamicElement

public DynamicElement(String id,
                      DynamicElement father)
Erzeugt ein neues dynamisches Text-Element.

Parameters:
id - identifieziert den Block gegenueber dem DynamicInputProvider
father - anderes dynamisches Element, welches das Element beinhaltet
Method Detail

isRoot

public boolean isRoot()
Checkt, ob das Element ein Vater-Element hat (false) oder nicht.


getFather

public DynamicElement getFather()
Liefert das uebergeordnete dynamische Element.


getFather

public DynamicElement getFather(Class cls)
Liefert die naechste uebergeordnete Element.

Parameters:
cls - Klasse der das Element entsprechen soll (muss eine
Returns:
null, falls dem Element keine Element der angegebenen Klasse uebergeordnet ist

getID

public String getID()
Liefert die ID des dynamischen Elements.


performElement

public abstract void performElement(DynamicInputProvider inputProvider,
                                    OutputStream output)
                             throws IOException
Fuehrt das dynamische Element (und alle etwaigen darin enthaltenen Elemente) aus.

Parameters:
inputProvider - verarbeitet die Loops und Fields
output - hier wird die Ausgabe reingeschrieben
Throws:
IOException - falls das Schreiben in den Stream fehlschlaegt