ObjectInterpolator
public class FieldBasedObjectInterpolator extends java.lang.Object implements ObjectInterpolator
Interpolator
instance to resolve any String fields in the
graph.
NOTE: This code is based on a reimplementation of ModelInterpolator in maven-project 2.1.0-M1, which became a performance bottleneck when the interpolation process became a hotspot.
Modifier and Type | Field | Description |
---|---|---|
static java.util.Set<java.lang.String> |
DEFAULT_BLACKLISTED_FIELD_NAMES |
|
static java.util.Set<java.lang.String> |
DEFAULT_BLACKLISTED_PACKAGE_PREFIXES |
Constructor | Description |
---|---|
FieldBasedObjectInterpolator() |
Use the default settings for blacklisted fields and packages, where fields named 'parent' and classes in packages
starting with 'java' will not be interpolated.
|
FieldBasedObjectInterpolator(java.util.Set<java.lang.String> blacklistedFieldNames,
java.util.Set<java.lang.String> blacklistedPackagePrefixes) |
Use the given black-lists to limit the interpolation of fields and classes (by package).
|
Modifier and Type | Method | Description |
---|---|---|
static void |
clearCaches() |
Clear out the Reflection caches kept for the most expensive operations encountered: field lookup and primitive
queries for fields.
|
java.util.List<ObjectInterpolationWarning> |
getWarnings() |
Retrieve the
List of warnings (ObjectInterpolationWarning
instances) generated during the last interpolation execution. |
boolean |
hasWarnings() |
Returns true if the last interpolation execution generated warnings.
|
void |
interpolate(java.lang.Object target,
BasicInterpolator interpolator) |
Using reflective field access and mutation, traverse the object graph from the given starting point and
interpolate any Strings found in that graph using the given
Interpolator . |
void |
interpolate(java.lang.Object target,
BasicInterpolator interpolator,
RecursionInterceptor recursionInterceptor) |
Using reflective field access and mutation, traverse the object graph from the given starting point and
interpolate any Strings found in that graph using the given
Interpolator . |
public static final java.util.Set<java.lang.String> DEFAULT_BLACKLISTED_FIELD_NAMES
public static final java.util.Set<java.lang.String> DEFAULT_BLACKLISTED_PACKAGE_PREFIXES
public FieldBasedObjectInterpolator()
public FieldBasedObjectInterpolator(java.util.Set<java.lang.String> blacklistedFieldNames, java.util.Set<java.lang.String> blacklistedPackagePrefixes)
blacklistedFieldNames
- The list of field names to ignoreblacklistedPackagePrefixes
- The list of package prefixes whose classes should be ignoredpublic static void clearCaches()
public boolean hasWarnings()
hasWarnings
in interface ObjectInterpolator
public java.util.List<ObjectInterpolationWarning> getWarnings()
List
of warnings (ObjectInterpolationWarning
instances) generated during the last interpolation execution.getWarnings
in interface ObjectInterpolator
public void interpolate(java.lang.Object target, BasicInterpolator interpolator) throws InterpolationException
Interpolator
. Limits to this process can be
managed using the black lists configured in the constructor.interpolate
in interface ObjectInterpolator
target
- The starting point of the object graph to traverseinterpolator
- The Interpolator
used to resolve any Strings encountered during traversal.
NOTE: Uses SimpleRecursionInterceptor
.InterpolationException
- in case of an error.public void interpolate(java.lang.Object target, BasicInterpolator interpolator, RecursionInterceptor recursionInterceptor) throws InterpolationException
Interpolator
. Limits to this process can be
managed using the black lists configured in the constructor.interpolate
in interface ObjectInterpolator
target
- The starting point of the object graph to traverseinterpolator
- The Interpolator
used to resolve any Strings encountered during traversal.recursionInterceptor
- The RecursionInterceptor
used to detect cyclical expressions in the graphInterpolationException
- in case of an error.Copyright © 2018. All rights reserved.