/** * @param cha governing class hierarchy * @return the Set of CMR fields for this bean, including inherited CMRs */ public static Set<Object> getCMRFields( BeanMetaData bean, DeploymentMetaData dmd, ClassHierarchy cha) { Set<Object> result = HashSetFactory.make(5); TypeReference T = bean.getEJBClass(); while (T != null) { BeanMetaData B = dmd.getBeanMetaData(T); if (B != null) { result.addAll(B.getCMRFields()); } IClass klass = cha.lookupClass(T); assert klass != null; IClass superKlass = klass.getSuperclass(); T = (superKlass == null) ? null : superKlass.getReference(); } return result; }
private boolean allFieldsArePrimitive(IClass c) { if (c.isArrayClass()) { TypeReference t = c.getReference().getArrayElementType(); return t.isPrimitiveType(); } else { if (c.getReference().equals(TypeReference.JavaLangObject)) { return true; } else { for (Iterator<IField> it = c.getDeclaredInstanceFields().iterator(); it.hasNext(); ) { IField f = it.next(); if (f.getReference().getFieldType().isReferenceType()) { return false; } } return allFieldsArePrimitive(c.getSuperclass()); } } }