Package org.beanio.internal.parser
Class Bean
- java.lang.Object
-
- org.beanio.internal.util.TreeNode<Component>
-
- org.beanio.internal.parser.Component
-
- org.beanio.internal.parser.PropertyComponent
-
- org.beanio.internal.parser.Bean
-
- All Implemented Interfaces:
java.lang.Cloneable
,java.lang.Iterable<Component>
,Property
,Replicateable
public class Bean extends PropertyComponent implements Property
A component used to aggregateProperty
's into a bean object, which may also be a property of a parent bean object itself.A bean may only have children that implement
Property
.- Since:
- 2.0
-
-
Field Summary
-
Fields inherited from class org.beanio.internal.parser.PropertyComponent
createMissingBeans
-
Fields inherited from interface org.beanio.internal.parser.Property
AGGREGATION_ARRAY, AGGREGATION_COLLECTION, AGGREGATION_MAP, COLLECTION, COMPLEX, MAP, SIMPLE
-
-
Constructor Summary
Constructors Constructor Description Bean()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
clearValue(ParsingContext context)
Clears the property value.java.lang.Object
createValue(ParsingContext context)
Creates the property value and returns it.boolean
defines(java.lang.Object bean)
java.lang.reflect.Constructor<?>
getConstructor()
Returns theConstructor
used to instantiate this bean object, or null if the default no-arg constructor is used.java.lang.Object
getValue(ParsingContext context)
Returns the value of this property.boolean
isLazy()
protected boolean
isMap()
Returns whether the bean object implementsMap
.protected boolean
isSupportedChild(Component child)
Returns whether a node is a supported child of this node.protected java.lang.Object
newInstance(ParsingContext context)
Creates a new instance of this bean object.void
registerLocals(java.util.Set<ParserLocal<?>> locals)
Called by a stream to register variables stored in the parsing context.void
setConstructor(java.lang.reflect.Constructor<?> constructor)
Sets theConstructor
used to instantiate this bean object.void
setLazy(boolean lazy)
void
setRequired(boolean required)
Sets whether this property should always be instantiated whenProperty.createValue(ParsingContext)
is invoked.void
setValue(ParsingContext context, java.lang.Object value)
Sets the property value (before marshalling).int
type()
Returns the property type.-
Methods inherited from class org.beanio.internal.parser.PropertyComponent
getAccessor, getType, isIdentifier, isMatchNull, isRequired, setAccessor, setIdentifier, setMatchNull, setType, toParamString
-
Methods inherited from class org.beanio.internal.util.TreeNode
add, clone, find, getChildren, getFirst, getName, isDescendant, iterator, print, print, setName, size, sort, toString, updateReferences
-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.beanio.internal.parser.Property
getAccessor, getName, getType, isIdentifier, setAccessor, setIdentifier, setType
-
-
-
-
Method Detail
-
clearValue
public void clearValue(ParsingContext context)
Description copied from interface:Property
Clears the property value. A subsequent call toProperty.getValue(ParsingContext)
should return null, orValue.MISSING
for lazy property values.- Specified by:
clearValue
in interfaceProperty
- Parameters:
context
- theParsingContext
-
createValue
public java.lang.Object createValue(ParsingContext context)
Description copied from interface:Property
Creates the property value and returns it.- Specified by:
createValue
in interfaceProperty
- Parameters:
context
- theParsingContext
- Returns:
- the property value
-
getValue
public java.lang.Object getValue(ParsingContext context)
Description copied from interface:Property
Returns the value of this property.When unmarshalling, this method should return
Value.MISSING
if the field was not present in the stream. Or if present, but has no value, null should be returned.When marshalling, this method should return
Value.MISSING
for any optional segment bound to a bean object, or null if required. Null field properties should always returnValue.MISSING
.- Specified by:
getValue
in interfaceProperty
- Parameters:
context
- theParsingContext
- Returns:
- the property value,
or
Value.MISSING
if not present in the stream, orValue.INVALID
if the field was invalid
-
setValue
public void setValue(ParsingContext context, java.lang.Object value)
Description copied from interface:Property
Sets the property value (before marshalling).- Specified by:
setValue
in interfaceProperty
- Parameters:
context
- theParsingContext
value
- the property value
-
newInstance
protected java.lang.Object newInstance(ParsingContext context)
Creates a new instance of this bean object.- Parameters:
context
- theParsingContext
- Returns:
- the new bean
Object
-
isSupportedChild
protected boolean isSupportedChild(Component child)
Description copied from class:TreeNode
Returns whether a node is a supported child of this node. Called byTreeNode.add(TreeNode)
.- Overrides:
isSupportedChild
in classPropertyComponent
- Parameters:
child
- the node to test- Returns:
- true if the child is allowed
-
setRequired
public void setRequired(boolean required)
Description copied from class:PropertyComponent
Sets whether this property should always be instantiated whenProperty.createValue(ParsingContext)
is invoked.- Overrides:
setRequired
in classPropertyComponent
- Parameters:
required
- true to always instantiate this property, false otherwise
-
type
public int type()
Description copied from interface:Property
Returns the property type.- Specified by:
type
in interfaceProperty
- Returns:
Property.SIMPLE
,Property.COMPLEX
,Property.AGGREGATION_ARRAY
,Property.COLLECTION
,Property.AGGREGATION_COLLECTION
, orProperty.MAP
-
isMap
protected boolean isMap()
Returns whether the bean object implementsMap
.- Returns:
- true if the bean object implements
Map
, false otherwise
-
getConstructor
public java.lang.reflect.Constructor<?> getConstructor()
Returns theConstructor
used to instantiate this bean object, or null if the default no-arg constructor is used.- Returns:
- the
Constructor
-
setConstructor
public void setConstructor(java.lang.reflect.Constructor<?> constructor)
Sets theConstructor
used to instantiate this bean object.- Parameters:
constructor
- theConstructor
-
registerLocals
public void registerLocals(java.util.Set<ParserLocal<?>> locals)
Description copied from class:Component
Called by a stream to register variables stored in the parsing context. This method should be overridden by subclasses that need to register one or more parser context variables.- Overrides:
registerLocals
in classComponent
- Parameters:
locals
- set of local variables
-
isLazy
public boolean isLazy()
-
setLazy
public void setLazy(boolean lazy)
-
-