![JAR search and dependency download from the Maven repository](/logo.png)
io.pelle.mango.db.util.BeanUtils Maven / Gradle / Ivy
The newest version!
package io.pelle.mango.db.util;
import io.pelle.mango.client.base.vo.IAttributeDescriptor;
import io.pelle.mango.client.base.vo.IBaseVO;
import java.util.HashSet;
import java.util.Set;
import org.apache.commons.beanutils.MethodUtils;
public class BeanUtils {
@SuppressWarnings("unchecked")
public static Set> getReferencedVOs(Class> clazz) {
Set> voAttributeDescriptors = new HashSet>();
for (IAttributeDescriptor> attributeDescriptor : getAttributeDescriptors(clazz)) {
if (IBaseVO.class.isAssignableFrom(attributeDescriptor.getAttributeType())) {
voAttributeDescriptors.add((Class extends IBaseVO>) attributeDescriptor.getAttributeType());
}
if (attributeDescriptor.getListAttributeType() != null && IBaseVO.class.isAssignableFrom(attributeDescriptor.getListAttributeType())) {
voAttributeDescriptors.add((Class extends IBaseVO>) attributeDescriptor.getListAttributeType());
}
}
return voAttributeDescriptors;
}
public static IAttributeDescriptor> getAttributeDescriptor(IAttributeDescriptor>[] attributeDescriptors, String attributeName) {
for (IAttributeDescriptor> attributeDescriptor : attributeDescriptors) {
if (attributeDescriptor.getAttributeName().equals(attributeName)) {
return attributeDescriptor;
}
}
return null;
}
public static IAttributeDescriptor>[] getAttributeDescriptors(Class> clazz) {
try {
Object o = MethodUtils.invokeStaticMethod(clazz, "getAttributeDescriptors", null);
return (IAttributeDescriptor>[]) o;
} catch (Exception e) {
throw new RuntimeException(String.format("error invoking method 'getAttributeDescriptors' on class '%s'", clazz.getName()), e);
}
}
public static IAttributeDescriptor> getAttributeDescriptor(Class> clazz, String attributeName) {
return getAttributeDescriptor(getAttributeDescriptors(clazz), attributeName);
}
@SuppressWarnings("unchecked")
public static Class extends IBaseVO> getVOClass(String voClassName) {
Class extends IBaseVO> voClass;
try {
voClass = (Class extends IBaseVO>) Class.forName(voClassName);
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
return voClass;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy