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,org.xml.sax.ContentHandler,org.xml.sax.DTDHandler,org.xml.sax.EntityResolver,org.xml.sax.ErrorHandler,org.xml.sax.ext.LexicalHandler
- Direct Known Subclasses:
XMLPersistenceMetaDataParser
public class CFMetaDataParser extends XMLMetaDataParser
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
Constructors Constructor Description CFMetaDataParser()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.lang.Class<?>classForName(java.lang.String name, boolean resolve)Helper method to create theClassfor the given name, taking into account the package currently being parsed for relative class names.static java.lang.Class<?>classForName(java.lang.String name, java.lang.String pkg, boolean resolve, java.lang.ClassLoader loader)Load the given class name against the given package and the set of accepted standard packages.protected java.lang.StringcurrentClassName()Return the current class being parsed; the returned name will be fully qualified.protected java.lang.StringcurrentPackage()Return the current package being parsed.protected voidendClass(java.lang.String elem)End a class.protected voidendClassElement(java.lang.String name)Override this method marking the end of an element within a declared class.protected voidendElement(java.lang.String name)Override this method marking the end of some element.protected voidendExtendedClass(java.lang.String elem)protected voidendPackage(java.lang.String elem)End a package.protected voidendPackageElement(java.lang.String name)Override this method marking the end of an element within a declared package.protected voidendSystemElement(java.lang.String name)Override this method marking the end of an element outside of any package or class.protected java.lang.StringgetClassAttributeName()The attribute of the class element that holds the name, or null to use the element text.protected intgetClassElementDepth()The depth of the class element.protected java.lang.StringgetPackageAttributeName()The attribute of the package element that holds the name, or null to use the element text.protected intgetPackageElementDepth()The depth of the package element.protected booleanisClassElementName(java.lang.String name)The name of the class element.protected booleanisPackageElementName(java.lang.String name)The name of the package element.protected voidreset()Override this method to clear any state and ready the parser for a new document.protected booleanstartClass(java.lang.String elem, org.xml.sax.Attributes attrs)Start a class.protected booleanstartClassElement(java.lang.String name, org.xml.sax.Attributes attrs)Override this method marking the start of an element within a declared class.protected booleanstartElement(java.lang.String name, org.xml.sax.Attributes attrs)Override this method marking the start of some element.protected booleanstartExtendedClass(java.lang.String elem, org.xml.sax.Attributes attrs)protected booleanstartPackage(java.lang.String elem, org.xml.sax.Attributes attrs)Start a package.protected booleanstartPackageElement(java.lang.String name, org.xml.sax.Attributes attrs)Override this method marking the start of an element within a declared package.protected booleanstartSystemElement(java.lang.String name, org.xml.sax.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
-
-
-
-
Method Detail
-
isPackageElementName
protected boolean isPackageElementName(java.lang.String name)
The name of the package element. Defaults to "package".
-
getPackageAttributeName
protected java.lang.String 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
protected boolean isClassElementName(java.lang.String name)
The name of the class element. Defaults to "class".
-
getClassAttributeName
protected java.lang.String 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
protected boolean startElement(java.lang.String name, org.xml.sax.Attributes attrs) throws org.xml.sax.SAXExceptionDescription copied from class:XMLMetaDataParserOverride 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:
startElementin classXMLMetaDataParser- Throws:
org.xml.sax.SAXException
-
endElement
protected void endElement(java.lang.String name) throws org.xml.sax.SAXExceptionDescription copied from class:XMLMetaDataParserOverride this method marking the end of some element.- Specified by:
endElementin classXMLMetaDataParser- Throws:
org.xml.sax.SAXException
-
startPackage
protected boolean startPackage(java.lang.String elem, org.xml.sax.Attributes attrs) throws org.xml.sax.SAXExceptionStart a package. Parses out package attribute by default. Return false to skip package element and its contents.- Throws:
org.xml.sax.SAXException
-
endPackage
protected void endPackage(java.lang.String elem)
End a package. Parses contained text by default.
-
startClass
protected boolean startClass(java.lang.String elem, org.xml.sax.Attributes attrs) throws org.xml.sax.SAXExceptionStart a class. Parses out class name by default. Return false to skip class element and its contents.- Throws:
org.xml.sax.SAXException
-
endClass
protected void endClass(java.lang.String elem) throws org.xml.sax.SAXExceptionEnd a class. Parses contained text by default.- Throws:
org.xml.sax.SAXException
-
startExtendedClass
protected boolean startExtendedClass(java.lang.String elem, org.xml.sax.Attributes attrs) throws org.xml.sax.SAXException- Throws:
org.xml.sax.SAXException
-
endExtendedClass
protected void endExtendedClass(java.lang.String elem) throws org.xml.sax.SAXException- Throws:
org.xml.sax.SAXException
-
startSystemElement
protected boolean startSystemElement(java.lang.String name, org.xml.sax.Attributes attrs) throws org.xml.sax.SAXExceptionOverride this method marking the start of an element outside of any package or class.- Throws:
org.xml.sax.SAXException
-
endSystemElement
protected void endSystemElement(java.lang.String name) throws org.xml.sax.SAXExceptionOverride this method marking the end of an element outside of any package or class.- Throws:
org.xml.sax.SAXException
-
startPackageElement
protected boolean startPackageElement(java.lang.String name, org.xml.sax.Attributes attrs) throws org.xml.sax.SAXExceptionOverride this method marking the start of an element within a declared package.- Throws:
org.xml.sax.SAXException
-
endPackageElement
protected void endPackageElement(java.lang.String name) throws org.xml.sax.SAXExceptionOverride this method marking the end of an element within a declared package.- Throws:
org.xml.sax.SAXException
-
startClassElement
protected boolean startClassElement(java.lang.String name, org.xml.sax.Attributes attrs) throws org.xml.sax.SAXExceptionOverride this method marking the start of an element within a declared class.- Throws:
org.xml.sax.SAXException
-
endClassElement
protected void endClassElement(java.lang.String name) throws org.xml.sax.SAXExceptionOverride this method marking the end of an element within a declared class.- Throws:
org.xml.sax.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:
resetin classXMLMetaDataParser
-
currentClassName
protected java.lang.String currentClassName()
Return the current class being parsed; the returned name will be fully qualified.
-
currentPackage
protected java.lang.String currentPackage()
Return the current package being parsed.
-
classForName
protected java.lang.Class<?> classForName(java.lang.String name, boolean resolve) throws org.xml.sax.SAXExceptionHelper method to create theClassfor the given name, taking into account the package currently being parsed for relative class names.- Throws:
org.xml.sax.SAXException
-
classForName
public static java.lang.Class<?> classForName(java.lang.String name, java.lang.String pkg, boolean resolve, java.lang.ClassLoader loader)Load the given class name against the given package and the set of accepted standard packages. Return null if the class cannot be loaded.
-
-