edu.bonn.xulu.plugin.appl
Class XuluRegistryReader_BasicAscii

java.lang.Object
  extended by edu.bonn.xulu.plugin.appl.XuluRegistryReader_BasicAscii
All Implemented Interfaces:
XuluRegistryReader

public class XuluRegistryReader_BasicAscii
extends Object
implements XuluRegistryReader

Diese Klasse dient dazu, die Xulu-Registry aus einem ASCII-InputStream (z.B. einer ASCII-Datei) einzulesen.
Dieser muss folgendes (zeilenweises) Format haben:

[Global]
Alle Klassen in diesem Bereich werden in der Xulu-Registry fuer alles registriert, wofuer sie geeignet sind (siehe XuluRegistry.register(Object)).
package.class [name]
package.class [name]
...
[DataType]
Alle Klassen in diesem Bereich werden in der Xulu-Registry als Datentyp registriert. Sie muessen (Sub)Klassen von XuluObject darstellen.
package.class
package.class
...
[DefaultFactory]
Alle Klassen in diesem Bereich werden in der Xulu-Registry nur als Default-Factory registriert. Sie muessen (Sub)Klassen von InstantiationFactory darstellen und ueber einen Standard-Konstruktor instanziierbar sein.
package.class [name]
package.class [name]
...
[ImportFactory]
Alle Klassen in diesem Bereich werden in der Xulu-Registry nur als Import-Factory registriert. Sie muessen (Sub)Klassen von ImportFactory darstellen und ueber einen Standard-Konstruktor instanziierbar sein.
package.class [name]
package.class [name]
...
[ExportFactory]
Alle Klassen in diesem Bereich werden in der Xulu-Registry nur als Export-Factory registriert. Sie muessen (Sub)Klassen von ExportFactory darstellen und ueber einen Standard-Konstruktor instanziierbar sein.
package.class [name]
package.class [name]
...
[TypeMapping]
Alle Tupel in diesem Bereich werden in der Xulu-Registry nur als TypeMapping registriert. Die Typ-Klasse muss eine (Sub)Klasse von XuluObject sein und die Default-Factory von InstantiationFactory. Beides sind Pflichtangaben fuer ein TypeMapping. Alle weiteren Angaben sind optional und repraesentieren Im- und Export-Factorys. Sie muessen (Sub)Klassen von ImportFactory bzw. ExportFactory darstellen und ueber einen Standard-Konstruktor instanziierbar sein.
package.typeClass package.defaultFacClass [package.factoryClass ...]
package.typeClass package.defaultFacClass [package.factoryClass ...]
...
[Visualisation]
Alle Klassen in diesem Bereich werden in der Xulu-Registry als Visualisierungstool registriert. Sie muessen (Sub)Klassen von VisualisationTool darstellen und ueber einen Standard-Konstruktor instanziierbar sein.
package.class
package.class
...
[Model]
Alle Klassen in diesem Bereich werden in der Xulu-Registry als Modell-Klasse registriert. Sie muessen (Sub)Klassen von XuluModel darstellen und ueber einen Standard-Konstruktor instanziierbar sein.
package.class
package.class
...
[Script]
Alle Klassen in diesem Bereich werden in der Xulu-Registry als Skript-Interpreter registriert. Sie muessen (Sub)Klassen von ScriptInterpreter darstellen und ueber einen Standard-Konstruktor instanziierbar sein.
package.class [name]
package.class [name]
...
[Plugin]
Alle Klassen in diesem Bereich werden in der Xulu-Registry als Xulu-Plugin registriert. Sie muessen (Sub)Klassen von XuluPlugin darstellen und ueber einen Standard-Konstruktor instanziierbar sein.
package.class [AUTOSTART] [name]
package.class [AUTOSTART] [name]
...

Leerzeilen und Zeilen, die mit //, | oder # beginnen, werden als Kommentare komplett ignoriert.

Version:
1.0
Author:
Martin Schmitz (University of Bonn/Germany)

Field Summary
static String TAG_DATATYPE
           
static String TAG_DEFAULTFAC
           
static String TAG_EXPORTFAC
           
static String TAG_GLOBAL
           
static String TAG_IMPORTFAC
           
static String TAG_MODEL
           
static String TAG_PLUGIN
           
static String TAG_SCRIPTINTERPRETER
           
static String TAG_TYPEMAPPING
           
static String TAG_VISUALISATION
           
 
Constructor Summary
XuluRegistryReader_BasicAscii()
          Erzeugt einen neuen Reader fuer die Xulu-Registry.
 
Method Summary
 XuluRegistry readRegistry(XuluModellingPlatform appl, InputStream input)
          Erstellt eine neue XuluRegistry und befuellt diese.
 XuluRegistry readRegistry(XuluModellingPlatform appl, InputStream input, XuluRegistry registry)
          Erweitert eine bestehende XuluRegistry.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

TAG_GLOBAL

public static final String TAG_GLOBAL
See Also:
Constant Field Values

TAG_DATATYPE

public static final String TAG_DATATYPE
See Also:
Constant Field Values

TAG_DEFAULTFAC

public static final String TAG_DEFAULTFAC
See Also:
Constant Field Values

TAG_IMPORTFAC

public static final String TAG_IMPORTFAC
See Also:
Constant Field Values

TAG_EXPORTFAC

public static final String TAG_EXPORTFAC
See Also:
Constant Field Values

TAG_TYPEMAPPING

public static final String TAG_TYPEMAPPING
See Also:
Constant Field Values

TAG_VISUALISATION

public static final String TAG_VISUALISATION
See Also:
Constant Field Values

TAG_MODEL

public static final String TAG_MODEL
See Also:
Constant Field Values

TAG_SCRIPTINTERPRETER

public static final String TAG_SCRIPTINTERPRETER
See Also:
Constant Field Values

TAG_PLUGIN

public static final String TAG_PLUGIN
See Also:
Constant Field Values
Constructor Detail

XuluRegistryReader_BasicAscii

public XuluRegistryReader_BasicAscii()
Erzeugt einen neuen Reader fuer die Xulu-Registry.

Method Detail

readRegistry

public XuluRegistry readRegistry(XuluModellingPlatform appl,
                                 InputStream input,
                                 XuluRegistry registry)
                          throws IOException
Erweitert eine bestehende XuluRegistry. Bestehende Eintraege werden ueberschrieben. Ist die uebergebene Registy null wird eine neue (leere) Instanz erstellt. Kann ein Eintrag aus dem Stream nicht richtig interpretiert oder instanziiert werden, wird die Zeile ignoriert und eine Fehlermeldung in die Standard-Fehlerausgabe geschrieben.

Specified by:
readRegistry in interface XuluRegistryReader
Parameters:
appl - Instanz der Xulu-Applikation fuer die die Registry eingelesen werden soll
input - Eingabe-Stream aus dem die Registry-Daten gelesen werden
registry - XuluRegistry die erweitert werden soll (kan null sein
Returns:
Instanz der XuluRegistry, die erstellt oder erweitert wurde
Throws:
IOException - falls ein unerwarteter Fehler beim Einlesen auftritt.

readRegistry

public XuluRegistry readRegistry(XuluModellingPlatform appl,
                                 InputStream input)
                          throws IOException
Erstellt eine neue XuluRegistry und befuellt diese.

Specified by:
readRegistry in interface XuluRegistryReader
Parameters:
appl - Instanz der Xulu-Applikation fuer die die Registry eingelesen werden soll
input - Eingabe-Stream aus dem die Registry-Daten gelesen werden
Returns:
Instanz der XuluRegistry, die erstellt wurde
Throws:
IOException - falls ein Fehler beim Einlesen auftritt