in transform/src/patch/java/org/apache/openjpa/meta/AbstractMetaDataDefaults.java [216:246]
private void populateFromReflection(ClassMetaData meta, boolean ignoreTransient) {
List<Member> members = getPersistentMembers(meta, ignoreTransient);
boolean iface = meta.getDescribedType().isInterface();
// If access is mixed or if the default is currently unknown,
// process all fields, otherwise only process members of the class
// level default access type.
String name;
boolean def;
FieldMetaData fmd;
for (Member member : members) {
name = getFieldName(member);
if (name == null || isReservedFieldName(name))
continue;
def = isDefaultPersistent(meta, member, name, ignoreTransient);
if (!def && _ignore)
continue;
// passed the tests; persistent type -- we construct with
// Object.class because setting backing member will set proper
// type anyway
fmd = meta.addDeclaredField(name, Object.class);
fmd.backingMember(member);
if (!def) {
fmd.setExplicit(true);
fmd.setManagement(FieldMetaData.MANAGE_NONE);
}
populate(fmd);
}
}