Fork me on GitHub

Commons GenericsUtil


Static utility class to get and set generically typed JCR property values. It has the following methods:

  <T> T getPropertyValue(Property property, Class<T> clazz)
  <T> T getPropertyValue(Node node, String path, Class<T> clazz)
  <T> Collection<T> getPropertyValues(Property property, Class<? extends Collection> clazz, Class<T> genericType)
  <T> Collection<T> getPropertyValues(Node node, String path, Class<? extends Collection> clazz, Class<T> genericType)
  <T> T getValue(Value value, Class<T> clazz)

  void setProperty(Node node, String relativePath, Object object)
  <T> void setPropertyValues(Property property, Collection<T> values)
  <T> void setPropertyValues(Node node, String relativePath, Collection<T> values)

  Value createValue(Object object)

  List<Class<?>> getActualTypeParameters(Field field)
  <T extends Annotation> T getGenericAnnotation(Field field, int parameterIndex, Class<T> annotationClazz)