in provider/tcp/src/main/java/org/apache/aries/rsa/provider/tcp/ser/DTOUtil.java [33:70]
static boolean isDTOType(Class<?> cls) {
try {
cls.getDeclaredConstructor();
} catch (NoSuchMethodException | SecurityException e) {
// No zero-arg constructor, not a DTO
return false;
}
if (cls.getDeclaredMethods().length > 0) {
// should not have any methods
return false;
}
for (Method m : cls.getMethods()) {
try {
Object.class.getMethod(m.getName(), m.getParameterTypes());
} catch (NoSuchMethodException snme) {
// Not a method defined by Object.class (or override of such
// method)
return false;
}
}
boolean foundField = false;
for (Field f : cls.getFields()) {
int modifiers = f.getModifiers();
if (Modifier.isStatic(modifiers)) {
// ignore static fields
continue;
}
if (!Modifier.isPublic(modifiers)) {
return false;
}
foundField = true;
}
return foundField;
}