![JAR search and dependency download from the Maven repository](/logo.png)
org.devocative.devolcano.vo.PropertyVO Maven / Gradle / Ivy
package org.devocative.devolcano.vo;
import java.beans.PropertyDescriptor;
import java.lang.reflect.ParameterizedType;
import java.util.Collection;
public class PropertyVO {
private PropertyDescriptor descriptor;
private FieldVO field;
public PropertyVO(PropertyDescriptor descriptor, FieldVO field) {
this.descriptor = descriptor;
this.field = field;
}
public String getName() {
return descriptor.getName();
}
public FieldVO getField() {
return field;
}
public ClassVO getType() {
return new ClassVO(descriptor.getPropertyType());
}
public boolean isGenericCollection() {
Class> propertyType = descriptor.getReadMethod().getReturnType();
return Collection.class.isAssignableFrom(propertyType) &&
descriptor.getReadMethod().getGenericReturnType() instanceof ParameterizedType;
}
public ClassVO getGenericCollectionType() {
ParameterizedType parameterizedType = (ParameterizedType) descriptor.getReadMethod().getGenericReturnType();
return new ClassVO((Class) parameterizedType.getActualTypeArguments()[0]);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy