@ComponentSpecification public interface PojoPathNavigator
Pojo reflectively according to a given PojoPath.
PojoPathNavigator is designed to be thread-safe and extensible. Therefore the
state is externalized to a context that is provided as argument to the methods of
this interface.PojoPath,
PojoDescriptorBuilder| Modifier and Type | Method and Description |
|---|---|
Object |
get(Object pojo,
String pojoPath,
PojoPathMode mode,
PojoPathContext context)
This method evaluates the given
pojoPath for the given pojo using the given
mode and context. |
<TYPE> TYPE |
get(Object pojo,
String pojoPath,
PojoPathMode mode,
PojoPathContext context,
Class<TYPE> targetClass)
This method evaluates the given
pojoPath for the given pojo using the given
mode and context. |
GenericType<?> |
getType(GenericType<?> pojoType,
String pojoPath,
boolean failOnUnsafePath,
PojoPathContext context)
This method determines the result-type for the given
starting at
the given pojoType using the given context. |
GenericType<?> |
getType(Type pojoType,
String pojoPath,
boolean failOnUnsafePath,
PojoPathContext context)
This method determines the result-type for the given
starting at
the given pojoType using the given context. |
Map<String,Object> |
pojo2Map(Object pojo)
|
Map<String,Object> |
pojo2Map(Object pojo,
PojoPathContext context)
|
Object |
set(Object pojo,
String pojoPath,
PojoPathMode mode,
PojoPathContext context,
Object value)
This method sets the given
value for the given pojoPath in the given
pojo using the given mode and context. |
static final String CDI_NAME
CDI name.Object get(Object pojo, String pojoPath, PojoPathMode mode, PojoPathContext context) throws PojoPathException, IllegalPojoPathException, PojoPathSegmentIsNullException, InstantiationFailedException
pojoPath for the given pojo using the given
mode and context. It returns the result of the evaluation. caching for repetitive calls on the same initial
pojo, you might get wrong results if intermediate objects have changed
outside this navigator in the
meantime.pojo - is the initial Pojo to operate on.pojoPath - is the PojoPath to navigate.mode - is the mode that determines how to deal with null values.context - is the PojoPathContext for this operation.pojoPath starting at the given
pojo. It may be null according to the given mode.IllegalPojoPathException - if the given pojoPath is illegal.PojoPathSegmentIsNullException - if an intermediate Pojo was
null and the given mode disallows this.InstantiationFailedException - if an intermediate Pojo was
null and should be created but the instantiation failed.PojoPathException - if the operation failed for arbitrary reasons.<TYPE> TYPE get(Object pojo, String pojoPath, PojoPathMode mode, PojoPathContext context, Class<TYPE> targetClass) throws PojoPathException, IllegalPojoPathException, PojoPathSegmentIsNullException, InstantiationFailedException, PojoPathConversionException
pojoPath for the given pojo using the given
mode and context. It returns the result of the evaluation. caching for repetitive calls on the same initial
pojo, you might get wrong results if intermediate objects have changed
outside this navigator in the
meantime.TYPE - is the generic type of the result.pojo - is the initial Pojo to operate on.pojoPath - is the PojoPath to navigate.mode - is the mode that determines how to deal with null values.context - is the PojoPathContext for this operation.targetClass - is the required result-type.pojoPath starting at the given
pojo. It may be null according to the given mode.IllegalPojoPathException - if the given pojoPath is illegal.PojoPathSegmentIsNullException - if an intermediate Pojo was
null and the given mode disallows this.InstantiationFailedException - if an intermediate Pojo was
null and should be created but the instantiation failed.PojoPathException - if the operation failed for arbitrary reasons.PojoPathConversionException - if the result is NOT compatible with the given
targetClass and could NOT be converted.GenericType<?> getType(GenericType<?> pojoType, String pojoPath, boolean failOnUnsafePath, PojoPathContext context) throws PojoPathException, IllegalPojoPathException, PojoPathUnsafeException
pojoPath starting at
the given pojoType using the given context. get is invoked on this
navigator with an instance of pojoType the result will be an instance of the type returned
by this method. pojoPath may be unsafe , what means that it has a
segment that points to a property that does NOT exist for the Class
determined for the according Pojo. In other words a PojoPath is
unsafe if it can NOT be written as native Java method cascade without using casts in order to be
compiled. It may be illegal depending on the initial Pojo.pojoType - is the type of the initial Pojo.pojoPath - is the PojoPath to navigate.failOnUnsafePath - determines how to deal with unsafe PojoPaths. If
true and the given pojoPath is unsafe for the given
pojoType an PojoPathUnsafeException is thrown and if false this
method returns null in such case.context - is the PojoPathContext for this operation.pojoPath starting at the
given pojoType. It may be Object.class e.g. in case an untyped
Collection is hit. It will be null if the given
pojoPath is unsafe and the given mode is
PojoPathMode.RETURN_IF_NULL.IllegalPojoPathException - if the given pojoPath is illegal.PojoPathUnsafeException - if the given pojoPath is unsafe for the given
pojoType and this is disallowed by mode.PojoPathException - if the operation failed for arbitrary reasons.GenericType<?> getType(Type pojoType, String pojoPath, boolean failOnUnsafePath, PojoPathContext context) throws PojoPathException, IllegalPojoPathException, PojoPathUnsafeException
pojoPath starting at
the given pojoType using the given context. get is invoked on this
navigator with an instance of pojoType the result will be an instance of the type returned
by this method. pojoPath may be unsafe , what means that it has a
segment that points to a property that does NOT exist for the Class
determined for the according Pojo. In other words a PojoPath is
unsafe if it can NOT be written as native Java method cascade without using casts in order to be
compiled. It may be illegal depending on the initial Pojo.pojoType - is the type of the initial Pojo.pojoPath - is the PojoPath to navigate.failOnUnsafePath - determines how to deal with unsafe PojoPaths. If
true and the given pojoPath is unsafe for the given
pojoType an PojoPathUnsafeException is thrown and if false this
method returns null in such case.context - is the PojoPathContext for this operation.pojoPath starting at the
given pojoType. It may be Object.class e.g. in case an untyped
Collection is hit. It will be null if the given
pojoPath is unsafe and the given mode is
PojoPathMode.RETURN_IF_NULL.IllegalPojoPathException - if the given pojoPath is illegal.PojoPathUnsafeException - if the given pojoPath is unsafe for the given
pojoType and this is disallowed by mode.PojoPathException - if the operation failed for arbitrary reasons.Object set(Object pojo, String pojoPath, PojoPathMode mode, PojoPathContext context, Object value) throws PojoPathException, IllegalPojoPathException, PojoPathSegmentIsNullException, InstantiationFailedException, PojoPathConversionException
value for the given pojoPath in the given
pojo using the given mode and context. It acts like a
get on the parent-path and then setting the value for the remaining segment on the result. segment points to a PojoPathFunction the result of
its set -method is returned.segment points to an index,parent-path is a
List, Map or array, this will be the old
value of the given pojoPath that
has been replaced by value.pojo is This will typically be the value that replaced value. It may be null
.pojo - is the initial Pojo to operate on.pojoPath - is the PojoPath to navigate.mode - is the mode that determines how to deal with null values.context - is the PojoPathContext for this operation.value - is the value to set. It may be null.set operation.IllegalPojoPathException - if the given pojoPath is illegal.PojoPathSegmentIsNullException - if an intermediate Pojo was
null and the given mode disallows this.InstantiationFailedException - if an intermediate Pojo was
null and should be created but the instantiation failed.PojoPathException - if the operation failed for arbitrary reasons.PojoPathConversionException - if the given pojo is NOT compatible with the type
required for the given pojoPath and could NOT be converted.Map<String,Object> pojo2Map(Object pojo)
Map reflecting the given
Pojo. Map will be simple and will NOT
support size or iteration.pojo - is the Pojo to convert.Map reflecting the given Pojo.PojoDescriptorBuilder.pojo2Map(Object)Map<String,Object> pojo2Map(Object pojo, PojoPathContext context)
Map reflecting the given
Pojo. Map will be simple and will NOT
support size or iteration.pojo - is the Pojo to convert.context - is the PojoPathContext for this operation.Map reflecting the given Pojo.PojoDescriptorBuilder.pojo2Map(Object)Copyright © 2001–2015 mmm-Team. All rights reserved.