edu.bonn.xulu.plugin.io.misc
Class DynamicXuluObjectFactory_BasicStructure

java.lang.Object
  extended by edu.bonn.xulu.io.AbstractFactory
      extended by edu.bonn.xulu.plugin.io.misc.DynamicXuluObjectFactory_BasicStructure
All Implemented Interfaces:
ExportFactory, Factory, ImportFactory

public class DynamicXuluObjectFactory_BasicStructure
extends AbstractFactory
implements ImportFactory, ExportFactory

Diese Factory importiert und exportiert Instanzen des Datentyps DynamicXuluObject aus einem (in ein) einfaches ASCII-Format.

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

Field Summary
protected  Logger LOGGER
          Logger fuer Debug-Ausgaben und Warnings.
 
Fields inherited from class edu.bonn.xulu.io.AbstractFactory
name
 
Constructor Summary
DynamicXuluObjectFactory_BasicStructure()
           
 
Method Summary
 void exportObject(Object obj, Object output)
          Exportiert eine Instanz von Properties in ein einfaches ASCII-Format.
 Class getExportDestinationType()
          Liefert den Objekt-Typ, den die Factory als Ziel zum Exportieren benoetigt.
 Class getImportSourceType()
          Liefert den Datentyp, den die Factory als Import-Quelle benoetigt.
 Class getImportType()
          Liefert den Datentyp, den die Factory erzeugt.
 DynamicXuluObject importObject(Object input, XuluRegistry reg)
          Importiert eine Instanz von DynamicXuluObject aus einem InputStream.
 boolean isExportable(Class c)
          Prueft, ob ein Objekttyp exportiert werden kann.
 boolean isExportable(Object obj)
          Prueft, ob ein Objekt exportiert werden kann.
 
Methods inherited from class edu.bonn.xulu.io.AbstractFactory
checkExportDestinationObject, checkImportSourceObject, equals, equals, getInstantiationFactoryFromRegistry, getName, setName
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface edu.bonn.xulu.io.Factory
equals
 

Field Detail

LOGGER

protected final Logger LOGGER
Logger fuer Debug-Ausgaben und Warnings.

Constructor Detail

DynamicXuluObjectFactory_BasicStructure

public DynamicXuluObjectFactory_BasicStructure()
Method Detail

getImportType

public Class getImportType()
Liefert den Datentyp, den die Factory erzeugt.

Specified by:
getImportType in interface ImportFactory
Returns:
immer DynamicXuluObject.class

getImportSourceType

public Class getImportSourceType()
Liefert den Datentyp, den die Factory als Import-Quelle benoetigt.

Specified by:
getImportSourceType in interface ImportFactory
Returns:
immer InputStream.class

importObject

public DynamicXuluObject importObject(Object input,
                                      XuluRegistry reg)
                               throws Exception
Importiert eine Instanz von DynamicXuluObject aus einem InputStream. Das Format des Streams ist der Klassendokumentation (siehe oben) zu entnehmen.

Specified by:
importObject in interface ImportFactory
Parameters:
input - Eingabe-Quelle (muss ein InputStream sein!)
reg - bietet Zugriff auf andere registrierte Factories, um eine Standard-Instanz von DynamicXuluObject zu erzeugen, in die das Objekt importiert wird
Throws:
UnsupportedOperationException - falls als Eingabe-Quelle keine InputStream angegeben wird
Exception - wenn beim Importieren ein Fehler auftritt

isExportable

public boolean isExportable(Object obj)
Prueft, ob ein Objekt exportiert werden kann. Dies ist der Fall, wenn es sich um ein DynamicXuluObject handelt.

Specified by:
isExportable in interface ExportFactory
Parameters:
obj - zu pruefendes Objekt

isExportable

public boolean isExportable(Class c)
Prueft, ob ein Objekttyp exportiert werden kann. Dies ist der Fall, wenn es sich um Properties (oder eine Unterklasse) handelt.

Specified by:
isExportable in interface ExportFactory
Parameters:
c - zu pruefender Objekttyp

getExportDestinationType

public Class getExportDestinationType()
Liefert den Objekt-Typ, den die Factory als Ziel zum Exportieren benoetigt.

Specified by:
getExportDestinationType in interface ExportFactory
Returns:
immer OutputStream.class

exportObject

public void exportObject(Object obj,
                         Object output)
                  throws IOException
Exportiert eine Instanz von Properties in ein einfaches ASCII-Format.

Specified by:
exportObject in interface ExportFactory
Parameters:
obj - zu exportiertendes Objekt (muss ein DynamicXuluObject sein
output - Export-Ziel (muss ein OutputStream sein!)
Throws:
UnsupportedOperationException - falls als Export-Ziel kein OutputStream angegeben wird
IllegalArgumentException - falls es sich bei obj nicht um ein Properties-Objekt handelt
IOException