provider.register(modelClass.getManager().getTableName());
// process references to create reverse fields
for (Field field : modelClass.getManager().getFields()) {
if (field instanceof BaseReference) {
BaseReference reference = (BaseReference) field;
String reverseFieldName = reference.getReverseFieldName();
if (reverseFieldName != null) {
Field reverseField = reference.newReverseField();
ModelClassBase referenceModelClass = reference.getReferenceClass();
if (referenceModelClass != null &&
!referenceModelClass.getManager().getFieldMap().containsValue(reverseFieldName)) {
referenceModelClass.getManager().addField(reverseFieldName, reverseField);
} else {
if (!deferredFields.containsKey(reference.getReferenceModelName())) {
deferredFields.put(reference.getReferenceModelName(), new LinkedHashMap<String, Field>());
}
deferredFields.get(reference.getReferenceModelName()).put(reverseFieldName, reverseField);
}
}
}
}
if (!deferredFields.containsKey(modelClass.getName())) {