in openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java [795:938]
protected boolean startClassElement(String name, Attributes attrs)
throws SAXException {
Object tag = (Object) _elems.get(name);
boolean ret = false;
if (tag == null) {
if (isMappingOverrideMode())
tag = startClassMappingElement(name, attrs);
ret = tag != null;
} else if (tag instanceof MetaDataTag) {
switch ((MetaDataTag) tag) {
case GENERATED_VALUE:
ret = startGeneratedValue(attrs);
break;
case ID:
ret = startId(attrs);
break;
case EMBEDDED_ID:
ret = startEmbeddedId(attrs);
break;
case ID_CLASS:
ret = startIdClass(attrs);
break;
case LOB:
ret = startLob(attrs);
break;
case QUERY:
ret = startNamedQuery(attrs);
break;
case QUERY_HINT:
ret = startQueryHint(attrs);
break;
case NATIVE_QUERY:
ret = startNamedNativeQuery(attrs);
break;
case QUERY_STRING:
ret = startQueryString(attrs);
break;
case SEQ_GENERATOR:
ret = startSequenceGenerator(attrs);
break;
case VERSION:
ret = startVersion(attrs);
break;
case MAP_KEY:
ret = startMapKey(attrs);
break;
case MAP_KEY_CLASS:
ret = startMapKeyClass(attrs);
break;
case FLUSH_MODE:
ret = startFlushMode(attrs);
break;
case ORDER_COLUMN:
ret = startOrderColumn(attrs);
break;
case ORDER_BY:
case ENTITY_LISTENERS:
ret = isMetaDataMode();
break;
case EXCLUDE_DEFAULT_LISTENERS:
ret = startExcludeDefaultListeners(attrs);
break;
case EXCLUDE_SUPERCLASS_LISTENERS:
ret = startExcludeSuperclassListeners(attrs);
break;
case PRE_PERSIST:
case POST_PERSIST:
case PRE_REMOVE:
case POST_REMOVE:
case PRE_UPDATE:
case POST_UPDATE:
case POST_LOAD:
ret = startCallback((MetaDataTag) tag, attrs);
break;
case DATASTORE_ID:
ret = startDatastoreId(attrs);
break;
case DATA_CACHE:
ret = startDataCache(attrs);
break;
case READ_ONLY:
ret = startReadOnly(attrs);
break;
case EXTERNAL_VALS:
ret = startExternalValues(attrs);
break;
case EXTERNAL_VAL:
ret = startExternalValue(attrs);
break;
case EXTERNALIZER:
ret = startExternalizer(attrs);
break;
case FACTORY:
ret = startFactory(attrs);
break;
case FETCH_GROUPS:
ret = startFetchGroups(attrs);
break;
case FETCH_GROUP:
ret = startFetchGroup(attrs);
break;
case FETCH_ATTRIBUTE:
ret = startFetchAttribute(attrs);
break;
case REFERENCED_FETCH_GROUP:
ret = startReferencedFetchGroup(attrs);
break;
case OPENJPA_VERSION:
ret = true;
// TODO: right now the schema enforces this value, but may need to change in the future
break;
default:
warnUnsupportedTag(name);
}
} else if (tag instanceof PersistenceStrategy) {
PersistenceStrategy ps = (PersistenceStrategy) tag;
if (_openjpaNamespace > 0) {
if (ps == PERS
|| ps == PERS_COLL
|| ps == PERS_MAP)
ret = startStrategy(ps, attrs);
else
ret = startExtendedStrategy(ps, attrs);
}
else {
ret = startStrategy(ps, attrs);
}
if (ret)
_strategy = ps;
} else if (tag == ELEM_LISTENER)
ret = startEntityListener(attrs);
else if (tag == ELEM_ATTRS)
ret = _mode != MODE_QUERY;
else if (tag == ELEM_CASCADE)
ret = isMetaDataMode();
else if (tag == ELEM_CASCADE_ALL || tag == ELEM_CASCADE_PER
|| tag == ELEM_CASCADE_MER || tag == ELEM_CASCADE_REM
|| tag == ELEM_CASCADE_REF || tag == ELEM_CASCADE_DET)
ret = startCascade(tag, attrs);
if (ret)
_parents.push(tag);
return ret;
}