Package org.apache.openjpa.lib.meta
Class CFMetaDataParser
java.lang.Object
org.xml.sax.helpers.DefaultHandler
org.apache.openjpa.lib.meta.XMLMetaDataParser
org.apache.openjpa.lib.meta.CFMetaDataParser
- All Implemented Interfaces:
MetaDataParser
,ContentHandler
,DTDHandler
,EntityResolver
,ErrorHandler
,LexicalHandler
- Direct Known Subclasses:
XMLPersistenceMetaDataParser
Custom SAX parser used by the system to quickly parse metadata files
for classes.
- Author:
- Abe White
-
Field Summary
Fields inherited from class org.apache.openjpa.lib.meta.XMLMetaDataParser
_extendedNamespace, _openjpaNamespace
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected Class<?>
classForName
(String name, boolean resolve) Helper method to create theClass
for the given name, taking into account the package currently being parsed for relative class names.static Class<?>
classForName
(String name, String pkg, boolean resolve, ClassLoader loader) Load the given class name against the given package and the set of accepted standard packages.protected String
Return the current class being parsed; the returned name will be fully qualified.protected String
Return the current package being parsed.protected void
End a class.protected void
endClassElement
(String name) Override this method marking the end of an element within a declared class.protected void
endElement
(String name) Override this method marking the end of some element.protected void
endExtendedClass
(String elem) protected void
endPackage
(String elem) End a package.protected void
endPackageElement
(String name) Override this method marking the end of an element within a declared package.protected void
endSystemElement
(String name) Override this method marking the end of an element outside of any package or class.protected String
The attribute of the class element that holds the name, or null to use the element text.protected int
The depth of the class element.protected String
The attribute of the package element that holds the name, or null to use the element text.protected int
The depth of the package element.protected boolean
isClassElementName
(String name) The name of the class element.protected boolean
isPackageElementName
(String name) The name of the package element.protected void
reset()
Override this method to clear any state and ready the parser for a new document.protected boolean
startClass
(String elem, Attributes attrs) Start a class.protected boolean
startClassElement
(String name, Attributes attrs) Override this method marking the start of an element within a declared class.protected boolean
startElement
(String name, Attributes attrs) Override this method marking the start of some element.protected boolean
startExtendedClass
(String elem, Attributes attrs) protected boolean
startPackage
(String elem, Attributes attrs) Start a package.protected boolean
startPackageElement
(String name, Attributes attrs) Override this method marking the start of an element within a declared package.protected boolean
startSystemElement
(String name, Attributes attrs) Override this method marking the start of an element outside of any package or class.Methods inherited from class org.apache.openjpa.lib.meta.XMLMetaDataParser
addComments, addResult, characters, clear, clearDeferredMetaData, 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, getSchemaSource, getSourceFile, getSourceIsSystemId, getSourceName, getSuffix, ignoreContent, isCaching, isParsing, isValidating, parse, parse, 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
-
Constructor Details
-
CFMetaDataParser
public CFMetaDataParser()
-
-
Method Details
-
isPackageElementName
The name of the package element. Defaults to "package". -
getPackageAttributeName
The attribute of the package element that holds the name, or null to use the element text. Defaults to "name". -
getPackageElementDepth
protected int getPackageElementDepth()The depth of the package element. Defaults to 1. -
isClassElementName
The name of the class element. Defaults to "class". -
getClassAttributeName
The attribute of the class element that holds the name, or null to use the element text. Defaults to "name". -
getClassElementDepth
protected int getClassElementDepth()The depth of the class element. Defaults to 2. -
startElement
Description copied from class:XMLMetaDataParser
Override this method marking the start of some element. If this method returns false, the content of the element and the end element event will be ignored.- Specified by:
startElement
in classXMLMetaDataParser
- Throws:
SAXException
-
endElement
Description copied from class:XMLMetaDataParser
Override this method marking the end of some element.- Specified by:
endElement
in classXMLMetaDataParser
- Throws:
SAXException
-
startPackage
Start a package. Parses out package attribute by default. Return false to skip package element and its contents.- Throws:
SAXException
-
endPackage
End a package. Parses contained text by default. -
startClass
Start a class. Parses out class name by default. Return false to skip class element and its contents.- Throws:
SAXException
-
endClass
End a class. Parses contained text by default.- Throws:
SAXException
-
startExtendedClass
- Throws:
SAXException
-
endExtendedClass
- Throws:
SAXException
-
startSystemElement
Override this method marking the start of an element outside of any package or class.- Throws:
SAXException
-
endSystemElement
Override this method marking the end of an element outside of any package or class.- Throws:
SAXException
-
startPackageElement
Override this method marking the start of an element within a declared package.- Throws:
SAXException
-
endPackageElement
Override this method marking the end of an element within a declared package.- Throws:
SAXException
-
startClassElement
Override this method marking the start of an element within a declared class.- Throws:
SAXException
-
endClassElement
Override this method marking the end of an element within a declared class.- Throws:
SAXException
-
reset
protected void reset()Override this method to clear any state and ready the parser for a new document. Subclasses should callsuper.reset()
to clear superclass state.- Overrides:
reset
in classXMLMetaDataParser
-
currentClassName
Return the current class being parsed; the returned name will be fully qualified. -
currentPackage
Return the current package being parsed. -
classForName
Helper method to create theClass
for the given name, taking into account the package currently being parsed for relative class names.- Throws:
SAXException
-
classForName
Load the given class name against the given package and the set of accepted standard packages. Return null if the class cannot be loaded.
-