public class PropertySupport
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
private static PropertySupport |
INSTANCE |
private static java.lang.String |
SEPARATOR |
| Constructor and Description |
|---|
PropertySupport() |
| Modifier and Type | Method and Description |
|---|---|
static PropertySupport |
instance()
Returns the singleton instance of this class.
|
private boolean |
isNestedProperty(java.lang.String propertyName)
isNestedProperty("address.street"); // true
isNestedProperty("address.street.name"); // true
isNestedProperty("person"); // false
isNestedProperty(".name"); // false
isNestedProperty("person."); // false
isNestedProperty("person.name."); // false
isNestedProperty(".person.name"); // false
isNestedProperty("."); // false
isNestedProperty(""); // false |
private java.lang.String |
nextPropertyNameFrom(java.lang.String propertyNameChain) |
private java.lang.String |
popPropertyNameFrom(java.lang.String propertyNameChain) |
<T> T |
propertyValue(java.lang.String propertyName,
java.lang.Class<T> clazz,
java.lang.Object target)
Return the value of a simple property from a target object.
|
<T> T |
propertyValueOf(java.lang.String propertyName,
java.lang.Class<T> clazz,
java.lang.Object target)
Returns the value of the given property name given target.
|
static <T> T |
propertyValueOf(java.lang.String propertyName,
java.lang.Object target,
java.lang.Class<T> clazz)
Static variant of
propertyValueOf(String, Class, Object) for syntactic sugar. |
<T> java.util.List<T> |
propertyValues(java.lang.String propertyName,
java.lang.Class<T> clazz,
java.lang.Iterable<?> target)
Returns a
containing the values of the given property name, from the elements of the
given . |
java.util.List<java.lang.Object> |
propertyValues(java.lang.String fieldOrPropertyName,
java.lang.Iterable<?> objects)
just delegates to
propertyValues(String, Class, Iterable) with Class being Object.class |
boolean |
publicGetterExistsFor(java.lang.String fieldName,
java.lang.Object actual) |
private <T> java.util.List<T> |
simplePropertyValues(java.lang.String propertyName,
java.lang.Class<T> clazz,
java.lang.Iterable<?> target) |
private static final java.lang.String SEPARATOR
private static final PropertySupport INSTANCE
public static PropertySupport instance()
public <T> java.util.List<T> propertyValues(java.lang.String propertyName,
java.lang.Class<T> clazz,
java.lang.Iterable<?> target)
List containing the values of the given property 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 properties (e.g. "address.street.number").propertyName - the name of the property. It may be a nested property. It is left to the clients to validate
for null or empty.target - the given Iterable.Iterable containing the values of the given property name, from the elements of the given
Iterable.IntrospectionError - if an element in the given Iterable does not have a property with a matching
name.public static <T> T propertyValueOf(java.lang.String propertyName,
java.lang.Object target,
java.lang.Class<T> clazz)
propertyValueOf(String, Class, Object) for syntactic sugar.
propertyName - the name of the property. It may be a nested property. It is left to the clients to validate
for null or empty.target - the given objectclazz - type of propertyIntrospectionError - if the given target does not have a property with a matching name.private <T> java.util.List<T> simplePropertyValues(java.lang.String propertyName,
java.lang.Class<T> clazz,
java.lang.Iterable<?> target)
private java.lang.String popPropertyNameFrom(java.lang.String propertyNameChain)
private java.lang.String nextPropertyNameFrom(java.lang.String propertyNameChain)
private boolean isNestedProperty(java.lang.String propertyName)
isNestedProperty("address.street"); // true
isNestedProperty("address.street.name"); // true
isNestedProperty("person"); // false
isNestedProperty(".name"); // false
isNestedProperty("person."); // false
isNestedProperty("person.name."); // false
isNestedProperty(".person.name"); // false
isNestedProperty("."); // false
isNestedProperty(""); // falsepublic <T> T propertyValue(java.lang.String propertyName,
java.lang.Class<T> clazz,
java.lang.Object target)
This only works for simple property, nested property are not supported ! use
propertyValueOf(String, Class, Object)
propertyName - the name of the property. It may be a nested property. It is left to the clients to validate
for null or empty.target - the given objectclazz - type of propertyIntrospectionError - if the given target does not have a property with a matching name.public <T> T propertyValueOf(java.lang.String propertyName,
java.lang.Class<T> clazz,
java.lang.Object target)
null, this method will
return null.propertyName - the name of the property. It may be a nested property. It is left to the clients to validate
for null or empty.clazz - the class of property.target - the given Object to extract property from.IntrospectionError - if target object does not have a property with a matching name.java.lang.IllegalArgumentException - if propertyName is null.public java.util.List<java.lang.Object> propertyValues(java.lang.String fieldOrPropertyName,
java.lang.Iterable<?> objects)
propertyValues(String, Class, Iterable) with Class being Object.classpublic boolean publicGetterExistsFor(java.lang.String fieldName,
java.lang.Object actual)