private static final class FieldBasedObjectInterpolator.InterpolateObjectAction
extends java.lang.Object
implements java.security.PrivilegedAction
Modifier and Type | Field and Description |
---|---|
private java.util.Set |
blacklistedFieldNames |
private java.lang.String[] |
blacklistedPackagePrefixes |
private java.util.LinkedList<FieldBasedObjectInterpolator.InterpolationTarget> |
interpolationTargets |
private BasicInterpolator |
interpolator |
private RecursionInterceptor |
recursionInterceptor |
private java.util.List<ObjectInterpolationWarning> |
warningCollector |
Constructor and Description |
---|
InterpolateObjectAction(java.lang.Object target,
BasicInterpolator interpolator,
RecursionInterceptor recursionInterceptor,
java.util.Set blacklistedFieldNames,
java.util.Set blacklistedPackagePrefixes,
java.util.List<ObjectInterpolationWarning> warningCollector)
Setup an object graph traversal for the given target starting point.
|
Modifier and Type | Method and Description |
---|---|
private void |
evaluateArray(java.lang.Object target,
java.lang.String basePath)
Traverse the elements of an array, and interpolate any qualified objects or add them to the traversal queue.
|
private boolean |
interpolateCollection(java.lang.Object obj,
java.lang.String basePath,
java.lang.reflect.Field field) |
private void |
interpolateMap(java.lang.Object obj,
java.lang.String basePath,
java.lang.reflect.Field field) |
private void |
interpolateObject(java.lang.Object obj,
java.lang.String basePath,
java.lang.reflect.Field field) |
private void |
interpolateString(java.lang.Object obj,
java.lang.reflect.Field field) |
private boolean |
isQualifiedForInterpolation(java.lang.Class cls)
Using the package-prefix blacklist, determine whether the given class is qualified for interpolation, or
whether it should be ignored.
|
private boolean |
isQualifiedForInterpolation(java.lang.reflect.Field field,
java.lang.Class fieldType)
Using the field-name blacklist and the primitive-field cache, determine whether the given field in the given
class is qualified for interpolation.
|
java.lang.Object |
run()
As long as the traversal queue is non-empty, traverse the next object in the queue.
|
private void |
traverseObjectWithParents(java.lang.Class cls,
FieldBasedObjectInterpolator.InterpolationTarget target)
Traverse the given object, interpolating any String fields and adding non-primitive field values to the
interpolation queue for later processing.
|
private final java.util.LinkedList<FieldBasedObjectInterpolator.InterpolationTarget> interpolationTargets
private final BasicInterpolator interpolator
private final java.util.Set blacklistedFieldNames
private final java.lang.String[] blacklistedPackagePrefixes
private final java.util.List<ObjectInterpolationWarning> warningCollector
private final RecursionInterceptor recursionInterceptor
public InterpolateObjectAction(java.lang.Object target, BasicInterpolator interpolator, RecursionInterceptor recursionInterceptor, java.util.Set blacklistedFieldNames, java.util.Set blacklistedPackagePrefixes, java.util.List<ObjectInterpolationWarning> warningCollector)
public java.lang.Object run()
run
in interface java.security.PrivilegedAction
private void traverseObjectWithParents(java.lang.Class cls, FieldBasedObjectInterpolator.InterpolationTarget target) throws InterpolationException
InterpolationException
private void interpolateObject(java.lang.Object obj, java.lang.String basePath, java.lang.reflect.Field field) throws java.lang.IllegalAccessException, InterpolationException
java.lang.IllegalAccessException
InterpolationException
private void interpolateMap(java.lang.Object obj, java.lang.String basePath, java.lang.reflect.Field field) throws java.lang.IllegalAccessException, InterpolationException
java.lang.IllegalAccessException
InterpolationException
private boolean interpolateCollection(java.lang.Object obj, java.lang.String basePath, java.lang.reflect.Field field) throws java.lang.IllegalAccessException, InterpolationException
java.lang.IllegalAccessException
InterpolationException
private void interpolateString(java.lang.Object obj, java.lang.reflect.Field field) throws java.lang.IllegalAccessException, InterpolationException
java.lang.IllegalAccessException
InterpolationException
private boolean isQualifiedForInterpolation(java.lang.Class cls)
private boolean isQualifiedForInterpolation(java.lang.reflect.Field field, java.lang.Class fieldType)
private void evaluateArray(java.lang.Object target, java.lang.String basePath) throws InterpolationException
InterpolationException