BeanIO 2.0.4

org.beanio.internal.parser.format.xml
Class XmlFieldFormat

java.lang.Object
  extended by org.beanio.internal.parser.format.xml.XmlFieldFormat
All Implemented Interfaces:
FieldFormat, XmlNode
Direct Known Subclasses:
XmlAttributeField, XmlElementField, XmlTextField

public abstract class XmlFieldFormat
extends Object
implements FieldFormat, XmlNode

Base class for XML FieldFormat implementations.

Since:
2.0
Author:
Kevin Seim

Field Summary
 
Fields inherited from interface org.beanio.internal.parser.format.xml.XmlNode
XML_TYPE_ATTRIBUTE, XML_TYPE_ELEMENT, XML_TYPE_NONE, XML_TYPE_TEXT
 
Constructor Summary
XmlFieldFormat()
          Constructs a new XmlFieldFormat.
 
Method Summary
 String extract(UnmarshallingContext context, boolean reportErrors)
          Extracts the field text from a record.
protected abstract  String extractText(XmlUnmarshallingContext context)
          Extracts a field from a record during unmarshalling.
 String getName()
          Returns the field name.
 FieldPadding getPadding()
          Returns the field padding, or null if the field text is not padded.
 int getSize()
          Returns the size of the field.
 void insertField(MarshallingContext context, String fieldText)
          Inserts field text into a record.
protected abstract  void insertText(XmlMarshallingContext context, String text)
          Inserts a field into the record during marshalling.
 boolean insertValue(MarshallingContext context, Object value)
          Inserts a value into a record.
 boolean isLazy()
          TODO rename isLazy to something better?? Returns whether this field is optionally present in the record.
 void setLazy(boolean lazy)
           
 void setName(String name)
          Sets the field name.
 void setPadding(FieldPadding padding)
          Sets the field padding.
protected  void toParamString(StringBuilder s)
          Called by toString() to append attributes of this field.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.beanio.internal.parser.FieldFormat
isNillable
 
Methods inherited from interface org.beanio.internal.parser.format.xml.XmlNode
getLocalName, getNamespace, getPrefix, getType, isNamespaceAware, isNillable, isRepeating
 

Constructor Detail

XmlFieldFormat

public XmlFieldFormat()
Constructs a new XmlFieldFormat.

Method Detail

insertValue

public boolean insertValue(MarshallingContext context,
                           Object value)
Description copied from interface: FieldFormat
Inserts a value into a record. This method is called before type conversion. If the method returns false, type conversion is invoked and FieldFormat.insertField(MarshallingContext, String) is called. If the method returns true, FieldFormat.insertField(MarshallingContext, String) is not invoked.

Specified by:
insertValue in interface FieldFormat
Parameters:
context - the MarshallingContext
value - the value to insert into the record
Returns:
true if type conversion is required and FieldFormat.insertField(MarshallingContext, String) must be invoked, false otherwise

insertField

public void insertField(MarshallingContext context,
                        String fieldText)
Description copied from interface: FieldFormat
Inserts field text into a record.

Specified by:
insertField in interface FieldFormat
Parameters:
context - the MarshallingContext holding the record
fieldText - the field text to insert into the record

insertText

protected abstract void insertText(XmlMarshallingContext context,
                                   String text)
Inserts a field into the record during marshalling.

Parameters:
context - the XmlMarshallingContext holding the record
text - the field text to insert

extract

public String extract(UnmarshallingContext context,
                      boolean reportErrors)
Description copied from interface: FieldFormat
Extracts the field text from a record. Returns null if the field was not present in the record.

May return Value.INVALID if the field is invalid, or Value.NIL if the field is explicitly set to nil or null such as in an XML or JSON formatted stream.

Implementations should also remove any field padding before returning the text.

Specified by:
extract in interface FieldFormat
Parameters:
context - the UnmarshallingContext holding the record
Returns:
the field text

extractText

protected abstract String extractText(XmlUnmarshallingContext context)
Extracts a field from a record during unmarshalling.

Parameters:
context - the XmlUnmarshallingContext holding the record
Returns:
the extracted field text

getSize

public int getSize()
Description copied from interface: FieldFormat
Returns the size of the field. Fixed length formats should return the field length, while other formats should simply return 1.

Specified by:
getSize in interface FieldFormat
Returns:
the size of the field

getName

public String getName()
Returns the field name.

Returns:
the field name

setName

public void setName(String name)
Sets the field name.

Parameters:
name - the field name

isLazy

public boolean isLazy()
Description copied from interface: FieldFormat
TODO rename isLazy to something better?? Returns whether this field is optionally present in the record.

Specified by:
isLazy in interface FieldFormat
Returns:
true if lazy, false otherwise

setLazy

public void setLazy(boolean lazy)

getPadding

public FieldPadding getPadding()
Returns the field padding, or null if the field text is not padded.

Returns:
the field padding or null

setPadding

public void setPadding(FieldPadding padding)
Sets the field padding.

Parameters:
padding - the field padding

toParamString

protected void toParamString(StringBuilder s)
Called by toString() to append attributes of this field.

Parameters:
s - the text to append

toString

public String toString()
Overrides:
toString in class Object

BeanIO 2.0.4

Copyright © 2010-2013 Kevin Seim