org.apache.openjpa.persistence.jdbc
Class XMLPersistenceMappingParser

java.lang.Object
  extended by org.xml.sax.helpers.DefaultHandler
      extended by org.apache.openjpa.lib.meta.XMLMetaDataParser
          extended by org.apache.openjpa.lib.meta.CFMetaDataParser
              extended by org.apache.openjpa.persistence.XMLPersistenceMetaDataParser
                  extended by org.apache.openjpa.persistence.jdbc.XMLPersistenceMappingParser
All Implemented Interfaces:
MetaDataParser, AbstractCFMetaDataFactory.Parser, ContentHandler, DTDHandler, EntityResolver, ErrorHandler, LexicalHandler

public class XMLPersistenceMappingParser
extends XMLPersistenceMetaDataParser

Custom SAX parser used by the system to parse persistence mapping files.

Author:
Steve Kim

Nested Class Summary
(package private)  class XMLPersistenceMappingParser.DeferredEmbeddableOverrides
           
 
Nested classes/interfaces inherited from class org.apache.openjpa.persistence.XMLPersistenceMetaDataParser
XMLPersistenceMetaDataParser.localDBIdentifiers
 
Field Summary
 
Fields inherited from class org.apache.openjpa.persistence.XMLPersistenceMetaDataParser
_cls, ELEM_ACCESS, ELEM_ATTRS, ELEM_CASCADE, ELEM_CASCADE_ALL, ELEM_CASCADE_DET, ELEM_CASCADE_MER, ELEM_CASCADE_PER, ELEM_CASCADE_REF, ELEM_CASCADE_REM, ELEM_DELIM_IDS, ELEM_LISTENER, ELEM_PKG, ELEM_PU_DEF, ELEM_PU_META, ELEM_XML_MAP_META_COMPLETE
 
Fields inherited from class org.apache.openjpa.lib.meta.XMLMetaDataParser
_extendedNamespace, _openjpaNamespace
 
Constructor Summary
XMLPersistenceMappingParser(JDBCConfiguration conf)
          Constructor; supply configuration.
 
Method Summary
protected  void addDeferredEmbeddableMetaData()
          Process all deferred embeddables using an unknown access type.
protected  void applyDeferredEmbeddableOverrides(Class<?> cls)
          Process all deferred embeddable overrides for a given class.
protected  void clearDeferredMetaData()
           
protected  void endClassMapping(ClassMetaData meta)
          Implement to finalize class mapping.
protected  void endClassMappingElement(String name)
          Implement to parse a mapping element within a class.
protected  void endFieldMapping(FieldMetaData field)
          Extend to set the columns.
protected  void endSystemMappingElement(String name)
          Implement to parse a mapping element outside of any class.
protected  String normalizeCatalogName(String catName)
           
protected  String normalizeSchemaName(String schName)
           
protected  String normalizeSequenceName(String seqName)
           
protected  void parseEagerFetchModeAttr(FieldMetaData fmd, Attributes attrs)
           
protected  void parseElementClassCriteriaAttr(FieldMetaData fmd, Attributes attrs)
           
protected  void parseStrategy(FieldMetaData fmd, Attributes attrs)
           
protected  void reset()
          Override this method to clear any state and ready the parser for a new document.
protected  void startClassMapping(ClassMetaData meta, boolean mappedSuper, Attributes attrs)
          Implement to add mapping attributes to class.
protected  Object startClassMappingElement(String name, Attributes attrs)
          Implement to parse a mapping element within a class.
protected  boolean startDelimitedIdentifiers()
           
protected  boolean startExtendedClass(String elem, Attributes attrs)
           
protected  void startFieldMapping(FieldMetaData field, Attributes attrs)
          Extend to clear annotation mapping info.
protected  boolean startLob(Attributes attrs)
          Parse lob.
protected  boolean startOrderColumn(Attributes attrs)
          Process OrderColumn.
protected  Object startSystemMappingElement(String name, Attributes attrs)
          Implement to parse a mapping element outside of any class.
 
Methods inherited from class org.apache.openjpa.persistence.XMLPersistenceMetaDataParser
addDeferredEmbeddableMetaData, addToParseList, addToParseList, classForName, currentElement, currentParent, currentStrategy, deferEmbeddable, endClass, endClassElement, endEmbeddedId, endExtendedClass, endGeneratedValue, endId, endIdClass, endLob, endNamedNativeQuery, endNamedQuery, endQueryHint, endQueryString, endSequenceGenerator, endSystemElement, endVersion, getAnnotationParser, getClassAttributeName, getClassElementDepth, getConfiguration, getEnvClassLoader, getMappingOverride, getMode, getPackageAttributeName, getParseClass, getParseList, getRepository, getSchemaSource, isClassElementName, isDeferredEmbeddable, isDuplicateClass, isDuplicateQuery, isMappingMode, isMappingOverrideMode, isMetaDataMode, isQueryMode, isRuntime, parse, parse, parseBasic, parseElementCollection, parseEmbedded, parseListContains, parseManyToMany, parseManyToOne, parseOneToMany, parseOneToOne, peekElement, popElement, pushElement, setAnnotationParser, setCascades, setDeferredEmbeddableAccessType, setEnvClassLoader, setMappingOverride, setMode, setMode, setOrphanRemoval, setRepository, startCascade, startClass, startClassElement, startEmbeddedId, startGeneratedValue, startId, startIdClass, startNamedNativeQuery, startNamedQuery, startQueryHint, startQueryString, startSequenceGenerator, startSystemElement, startVersion
 
Methods inherited from class org.apache.openjpa.lib.meta.CFMetaDataParser
classForName, classForName, currentClassName, currentPackage, endElement, endPackage, endPackageElement, getPackageElementDepth, isPackageElementName, startElement, startPackage, startPackageElement
 
Methods inherited from class org.apache.openjpa.lib.meta.XMLMetaDataParser
addComments, addResult, characters, clear, comment, currentClassLoader, currentComments, currentDepth, currentLocation, currentText, endCDATA, endDTD, endElement, endEntity, error, fatalError, finish, getClassLoader, getDocType, getException, getException, getException, getLexicalHandler, getLocation, getLog, getOverrideContextClassloader, getParseComments, getParseText, getResults, getSourceFile, getSourceIsSystemId, getSourceName, getSuffix, ignoreContent, isCaching, isParsing, isValidating, parse, parse, parse, parse, parsed, parseNewResource, setCaching, setClassLoader, setDocumentLocator, setLexicalHandler, setLocation, setLog, setOverrideContextClassloader, setParseComments, setParseText, setParsing, setSourceIsSystemId, setSuffix, setValidating, startCDATA, startDTD, startElement, startEntity
 
Methods inherited from class org.xml.sax.helpers.DefaultHandler
endDocument, endPrefixMapping, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, skippedEntity, startDocument, startPrefixMapping, unparsedEntityDecl, warning
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.openjpa.lib.meta.MetaDataParser
clear, getResults, parse, parse, parse, parse, setClassLoader
 

Constructor Detail

XMLPersistenceMappingParser

public XMLPersistenceMappingParser(JDBCConfiguration conf)
Constructor; supply configuration.

Method Detail

reset

protected void reset()
Description copied from class: CFMetaDataParser
Override this method to clear any state and ready the parser for a new document. Subclasses should call super.reset() to clear superclass state.

Overrides:
reset in class XMLPersistenceMetaDataParser

startSystemMappingElement

protected Object startSystemMappingElement(String name,
                                           Attributes attrs)
                                    throws SAXException
Description copied from class: XMLPersistenceMetaDataParser
Implement to parse a mapping element outside of any class.

Overrides:
startSystemMappingElement in class XMLPersistenceMetaDataParser
Returns:
the tag for the given element, or null to skip the element
Throws:
SAXException

endSystemMappingElement

protected void endSystemMappingElement(String name)
                                throws SAXException
Description copied from class: XMLPersistenceMetaDataParser
Implement to parse a mapping element outside of any class.

Overrides:
endSystemMappingElement in class XMLPersistenceMetaDataParser
Throws:
SAXException

startClassMappingElement

protected Object startClassMappingElement(String name,
                                          Attributes attrs)
                                   throws SAXException
Description copied from class: XMLPersistenceMetaDataParser
Implement to parse a mapping element within a class.

Overrides:
startClassMappingElement in class XMLPersistenceMetaDataParser
Returns:
the tag for the given element, or null to skip element
Throws:
SAXException

endClassMappingElement

protected void endClassMappingElement(String name)
                               throws SAXException
Description copied from class: XMLPersistenceMetaDataParser
Implement to parse a mapping element within a class.

Overrides:
endClassMappingElement in class XMLPersistenceMetaDataParser
Throws:
SAXException

startClassMapping

protected void startClassMapping(ClassMetaData meta,
                                 boolean mappedSuper,
                                 Attributes attrs)
                          throws SAXException
Description copied from class: XMLPersistenceMetaDataParser
Implement to add mapping attributes to class.

Overrides:
startClassMapping in class XMLPersistenceMetaDataParser
Throws:
SAXException

endClassMapping

protected void endClassMapping(ClassMetaData meta)
                        throws SAXException
Description copied from class: XMLPersistenceMetaDataParser
Implement to finalize class mapping.

Overrides:
endClassMapping in class XMLPersistenceMetaDataParser
Throws:
SAXException

startLob

protected boolean startLob(Attributes attrs)
                    throws SAXException
Description copied from class: XMLPersistenceMetaDataParser
Parse lob.

Overrides:
startLob in class XMLPersistenceMetaDataParser
Throws:
SAXException

startFieldMapping

protected void startFieldMapping(FieldMetaData field,
                                 Attributes attrs)
                          throws SAXException
Extend to clear annotation mapping info.

Overrides:
startFieldMapping in class XMLPersistenceMetaDataParser
Throws:
SAXException

endFieldMapping

protected void endFieldMapping(FieldMetaData field)
                        throws SAXException
Extend to set the columns.

Overrides:
endFieldMapping in class XMLPersistenceMetaDataParser
Throws:
SAXException

startOrderColumn

protected boolean startOrderColumn(Attributes attrs)
                            throws SAXException
Process OrderColumn.

Overrides:
startOrderColumn in class XMLPersistenceMetaDataParser
Throws:
SAXException

applyDeferredEmbeddableOverrides

protected void applyDeferredEmbeddableOverrides(Class<?> cls)
                                         throws SAXException
Process all deferred embeddable overrides for a given class. This should only occur after the embeddable is mapped.

Overrides:
applyDeferredEmbeddableOverrides in class XMLPersistenceMetaDataParser
Parameters:
embedType - embeddable class
access - class level access for embeddable
Throws:
SAXException

clearDeferredMetaData

protected void clearDeferredMetaData()
Overrides:
clearDeferredMetaData in class XMLPersistenceMetaDataParser

addDeferredEmbeddableMetaData

protected void addDeferredEmbeddableMetaData()
Process all deferred embeddables using an unknown access type.

Overrides:
addDeferredEmbeddableMetaData in class XMLPersistenceMetaDataParser

startDelimitedIdentifiers

protected boolean startDelimitedIdentifiers()
Overrides:
startDelimitedIdentifiers in class XMLPersistenceMetaDataParser

normalizeSequenceName

protected String normalizeSequenceName(String seqName)
Overrides:
normalizeSequenceName in class XMLPersistenceMetaDataParser

normalizeSchemaName

protected String normalizeSchemaName(String schName)
Overrides:
normalizeSchemaName in class XMLPersistenceMetaDataParser

normalizeCatalogName

protected String normalizeCatalogName(String catName)
Overrides:
normalizeCatalogName in class XMLPersistenceMetaDataParser

parseEagerFetchModeAttr

protected void parseEagerFetchModeAttr(FieldMetaData fmd,
                                       Attributes attrs)
                                throws SAXException
Overrides:
parseEagerFetchModeAttr in class XMLPersistenceMetaDataParser
Throws:
SAXException

parseElementClassCriteriaAttr

protected void parseElementClassCriteriaAttr(FieldMetaData fmd,
                                             Attributes attrs)
                                      throws SAXException
Overrides:
parseElementClassCriteriaAttr in class XMLPersistenceMetaDataParser
Throws:
SAXException

parseStrategy

protected void parseStrategy(FieldMetaData fmd,
                             Attributes attrs)
Overrides:
parseStrategy in class XMLPersistenceMetaDataParser

startExtendedClass

protected boolean startExtendedClass(String elem,
                                     Attributes attrs)
                              throws SAXException
Overrides:
startExtendedClass in class CFMetaDataParser
Throws:
SAXException


Copyright © 2006-2012 Apache Software Foundation. All Rights Reserved.