de.unihalle.informatik.Alida.dataio.provider.cmdline
Class ALDParametrizedClassDataIOCmdline

java.lang.Object
  extended by de.unihalle.informatik.Alida.dataio.provider.cmdline.ALDStandardizedDataIOCmdline
      extended by de.unihalle.informatik.Alida.dataio.provider.cmdline.ALDParametrizedClassDataIOCmdline
All Implemented Interfaces:
ALDDataIO, ALDDataIOCmdline

@ALDDataIOProvider
public class ALDParametrizedClassDataIOCmdline
extends ALDStandardizedDataIOCmdline

DataIO provider for parametrized classes from command line. As this provider extends ALDStandardizedDataIOCmdline it implements the Alida syntax conventions. Reading is done only for parameters annotated with ALDClassParameter. Either all annotated parameters are written/formated or a subset as specified by a format string.

Author:
posch

Field Summary
 
Fields inherited from class de.unihalle.informatik.Alida.dataio.provider.cmdline.ALDStandardizedDataIOCmdline
DERIVEDCLASS_CHAR, FILEIO_CHAR
 
Constructor Summary
ALDParametrizedClassDataIOCmdline()
           
 
Method Summary
 java.lang.String formatAsString(java.lang.Object obj)
          Generic formater to string of parametrized classes.
 java.lang.String formatAsString(java.lang.Object obj, java.lang.String formatString)
          Format all parameters of this parametrized class annotated with ALDClassParameter into a string.
 java.lang.Object parse(java.lang.reflect.Field field, java.lang.Class<?> cl, java.lang.String valueString)
          Generic parser for parametrized classes.
 java.util.Collection<java.lang.Class<?>> providedClasses()
          Interface method to announce class for which IO is provided for
 
Methods inherited from class de.unihalle.informatik.Alida.dataio.provider.cmdline.ALDStandardizedDataIOCmdline
getValueStringFromFile, readData, writeData
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ALDParametrizedClassDataIOCmdline

public ALDParametrizedClassDataIOCmdline()
Method Detail

formatAsString

public java.lang.String formatAsString(java.lang.Object obj)
Generic formater to string of parametrized classes. Output all annotated members of the class annotated with ALDClassParameter.

Specified by:
formatAsString in class ALDStandardizedDataIOCmdline
Parameters:
obj - object to format
Returns:
string representations of the object

formatAsString

public java.lang.String formatAsString(java.lang.Object obj,
                                       java.lang.String formatString)
Format all parameters of this parametrized class annotated with ALDClassParameter into a string. If formatString starts with a curly bracket it is assume to contained a comma seprated list of name=valueString pairs enclosed in a matching curly brackets. In this case, only the (annotated) members named in this list are formated where the valueString is passed to the writeData of the dataIO provider handling the parameter's type. If formatString does not start with a curly bracket all annotated members are formated.

Overrides:
formatAsString in class ALDStandardizedDataIOCmdline
Parameters:
obj - parametrized class to be formated
formatString -

parse

public java.lang.Object parse(java.lang.reflect.Field field,
                              java.lang.Class<?> cl,
                              java.lang.String valueString)
Generic parser for parametrized classes. For the class of the object to be read see ALDDataIOCmdline. As a valueString a comma separated list of name=value pairs enclosed in curly brackets is expected. Each name has to be a member of the class or a super class which is annotated with ALDClassParameter. The readData method of the provider for the class of the member variable is used to read the objects value from value.

Specified by:
parse in class ALDStandardizedDataIOCmdline
Parameters:
field - Field of object to be returned
cl - Class of object to be returned.
valueString - Source from where to read data (e.g. a filename).
Returns:
Object read from valueString
See Also:
ALDDataIOManagerCmdline

providedClasses

public java.util.Collection<java.lang.Class<?>> providedClasses()
Interface method to announce class for which IO is provided for

Returns:
Collection of classes provided