public enum FieldSupport extends java.lang.Enum<FieldSupport>
Enum Constant and Description |
---|
COMPARISON |
EXTRACTION |
EXTRACTION_OF_PUBLIC_FIELD_ONLY |
Modifier and Type | Field and Description |
---|---|
private boolean |
allowUsingPrivateFields |
private static java.lang.String |
BOOLEAN |
private static java.lang.String |
BYTE |
private static java.lang.String |
CHAR |
private static java.lang.String |
DOUBLE |
private static java.lang.String |
FLOAT |
private static java.lang.String |
INT |
private static java.lang.String |
LONG |
private static java.lang.String |
SEPARATOR |
private static java.lang.String |
SHORT |
Modifier and Type | Method and Description |
---|---|
static FieldSupport |
comparison()
Returns the instance dedicated to comparison of fields.
|
static FieldSupport |
extraction()
Returns the instance dedicated to extraction of fields.
|
<T> T |
fieldValue(java.lang.String fieldName,
java.lang.Class<T> fieldClass,
java.lang.Object target)
Return the value of field from a target object.
|
<T> java.util.List<T> |
fieldValues(java.lang.String fieldName,
java.lang.Class<T> fieldClass,
java.lang.Iterable<?> target)
Returns a
containing the values of the given field name, from the elements of the given
. |
<T> java.util.List<T> |
fieldValues(java.lang.String fieldName,
java.lang.Class<T> fieldClass,
java.lang.Object[] target)
Returns a
containing the values of the given field name, from the elements of the given
. |
java.util.List<java.lang.Object> |
fieldValues(java.lang.String fieldName,
java.lang.Iterable<?> target) |
boolean |
isAllowedToRead(java.lang.reflect.Field field) |
boolean |
isAllowedToUsePrivateFields() |
private boolean |
isNestedField(java.lang.String fieldName) |
private java.lang.String |
nextFieldNameFrom(java.lang.String fieldNameChain) |
private java.lang.String |
popFieldNameFrom(java.lang.String fieldNameChain) |
private <T> T |
readSimpleField(java.lang.String fieldName,
java.lang.Class<T> clazz,
java.lang.Object target) |
void |
setAllowUsingPrivateFields(boolean allowUsingPrivateFields)
Sets whether the use of private fields is allowed.
|
private <T> java.util.List<T> |
simpleFieldValues(java.lang.String fieldName,
java.lang.Class<T> clazz,
java.lang.Iterable<?> target) |
static FieldSupport |
valueOf(java.lang.String name)
Returns the enum constant of this type with the specified name.
|
static FieldSupport[] |
values()
Returns an array containing the constants of this enum type, in
the order they are declared.
|
public static final FieldSupport EXTRACTION
public static final FieldSupport EXTRACTION_OF_PUBLIC_FIELD_ONLY
public static final FieldSupport COMPARISON
private static final java.lang.String CHAR
private static final java.lang.String BOOLEAN
private static final java.lang.String DOUBLE
private static final java.lang.String FLOAT
private static final java.lang.String LONG
private static final java.lang.String INT
private static final java.lang.String SHORT
private static final java.lang.String BYTE
private static final java.lang.String SEPARATOR
private boolean allowUsingPrivateFields
public static FieldSupport[] values()
for (FieldSupport c : FieldSupport.values()) System.out.println(c);
public static FieldSupport valueOf(java.lang.String name)
name
- the name of the enum constant to be returned.java.lang.IllegalArgumentException
- if this enum type has no constant with the specified namejava.lang.NullPointerException
- if the argument is nullpublic static FieldSupport extraction()
public static FieldSupport comparison()
public boolean isAllowedToUsePrivateFields()
public void setAllowUsingPrivateFields(boolean allowUsingPrivateFields)
allowUsingPrivateFields
- allow private fields extraction and comparison. Default true
.public <T> java.util.List<T> fieldValues(java.lang.String fieldName, java.lang.Class<T> fieldClass, java.lang.Iterable<?> target)
List
containing the values of the given field name, from the elements of the given
Iterable
. If the given Iterable
is empty or null
, this method will return an
empty List
. This method supports nested fields (e.g. "address.street.number").T
- the type of the extracted elements.fieldName
- the name of the field. It may be a nested field. It is left to the clients to validate for
null
or empty.fieldClass
- the expected type of the given field.target
- the given Iterable
.Iterable
containing the values of the given field name, from the elements of the given
Iterable
.IntrospectionError
- if an element in the given Iterable
does not have a field with a matching name.public java.util.List<java.lang.Object> fieldValues(java.lang.String fieldName, java.lang.Iterable<?> target)
public <T> java.util.List<T> fieldValues(java.lang.String fieldName, java.lang.Class<T> fieldClass, java.lang.Object[] target)
List
containing the values of the given field name, from the elements of the given
Iterable
. If the given Iterable
is empty or null
, this method will return an
empty List
. This method supports nested fields (e.g. "address.street.number").T
- the type of the extracted elements.fieldName
- the name of the field. It may be a nested field. It is left to the clients to validate for
null
or empty.fieldClass
- the expected type of the given field.target
- the given Iterable
.Iterable
containing the values of the given field name, from the elements of the given
Iterable
.IntrospectionError
- if an element in the given Iterable
does not have a field with a matching name.private <T> java.util.List<T> simpleFieldValues(java.lang.String fieldName, java.lang.Class<T> clazz, java.lang.Iterable<?> target)
private java.lang.String popFieldNameFrom(java.lang.String fieldNameChain)
private java.lang.String nextFieldNameFrom(java.lang.String fieldNameChain)
private boolean isNestedField(java.lang.String fieldName)
public <T> T fieldValue(java.lang.String fieldName, java.lang.Class<T> fieldClass, java.lang.Object target)
Return null if field is nested and one of the nested value is null, ex :
fieldValue(race.name, String.class, frodo); // will return null if frodo.race is null
T
- the type of the extracted value.fieldName
- the name of the field. It may be a nested field. It is left to the clients to validate for
null
or empty.target
- the given objectfieldClass
- type of fieldIntrospectionError
- if the given target does not have a field with a matching name.private <T> T readSimpleField(java.lang.String fieldName, java.lang.Class<T> clazz, java.lang.Object target)
public boolean isAllowedToRead(java.lang.reflect.Field field)