Class JakartaXmlMetaDataHandler
- java.lang.Object
-
- org.xml.sax.helpers.DefaultHandler
-
- org.datanucleus.metadata.xml.AbstractXmlMetaDataHandler
-
- org.datanucleus.api.jakarta.metadata.JakartaXmlMetaDataHandler
-
- All Implemented Interfaces:
ContentHandler
,DTDHandler
,EntityResolver
,ErrorHandler
public class JakartaXmlMetaDataHandler extends org.datanucleus.metadata.xml.AbstractXmlMetaDataHandler
Parser handler for Jakarta Persistence XML MetaData. Implements DefaultHandler and handles the extracting of MetaData for Jakarta Persistence from the XML elements/attributes. This class simply constructs the MetaData representation mirroring what is in the XML MetaData file. It has no knowledge of the class(es) that it represents, simply the information in the XML MetaData file. The knowledge of the classes is imposed on the representation at a later stage where necessary.Operates the parse process using a Stack. MetaData components are added to the stack as they are encountered and created. They are then popped off the stack when the end element is encountered.
-
-
Constructor Summary
Constructors Constructor Description JakartaXmlMetaDataHandler(org.datanucleus.metadata.MetaDataManager mgr, String filename, EntityResolver resolver)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
endElement(String uri, String localName, String qName)
Handler method called at the end of an element.protected org.datanucleus.metadata.ClassMetaData
newClassObject(org.datanucleus.metadata.PackageMetaData pmd, Attributes attrs, boolean embeddedOnly)
Utility to create a new class component.protected org.datanucleus.metadata.AbstractMemberMetaData
newEmbeddedFieldObject(org.datanucleus.metadata.MetaData md, String name)
Utility to create a new embedded field/property component.protected org.datanucleus.metadata.AbstractMemberMetaData
newFieldObject(org.datanucleus.metadata.AbstractClassMetaData acmd, Attributes attrs, String dfgDefault)
Utility to create a new field/property component and add it to the class as required.protected org.datanucleus.metadata.AbstractMemberMetaData
newOverriddenEmbeddedFieldObject(org.datanucleus.metadata.EmbeddedMetaData embmd, String memberName, String columnName)
Recursive method to process embedded member overrides.protected org.datanucleus.metadata.AbstractMemberMetaData
newOverriddenEmbeddedFieldObject(org.datanucleus.metadata.EmbeddedMetaData embmd, Attributes attrs)
Utility to create a new field entry for a field/property in a superclass.protected org.datanucleus.metadata.AbstractMemberMetaData
newOverriddenFieldObject(org.datanucleus.metadata.MetaData md, Attributes attrs)
Utility to create a new field entry for a field/property in a superclass.protected org.datanucleus.metadata.AbstractMemberMetaData
newPKFieldObject(org.datanucleus.metadata.AbstractClassMetaData acmd, Attributes attrs)
Utility to create a new primary key field/property component.protected org.datanucleus.metadata.AbstractMemberMetaData
newTransientFieldObject(org.datanucleus.metadata.MetaData md, String name)
Utility to create a new transient field/property component.void
startElement(String uri, String localName, String qName, Attributes attrs)
Handler method called at the start of an element.-
Methods inherited from class org.datanucleus.metadata.xml.AbstractXmlMetaDataHandler
characters, error, getAttr, getAttr, getMetaData, getStack, getString, isPersistenceContext, popStack, pushStack, resolveEntity, setValidate
-
Methods inherited from class org.xml.sax.helpers.DefaultHandler
endDocument, endPrefixMapping, fatalError, ignorableWhitespace, notationDecl, processingInstruction, setDocumentLocator, skippedEntity, startDocument, startPrefixMapping, unparsedEntityDecl, warning
-
-
-
-
Constructor Detail
-
JakartaXmlMetaDataHandler
public JakartaXmlMetaDataHandler(org.datanucleus.metadata.MetaDataManager mgr, String filename, EntityResolver resolver)
Constructor. Protected to prevent instantiation.- Parameters:
mgr
- the metadata managerfilename
- The name of the file to parseresolver
- Entity Resolver to use (null if not available)
-
-
Method Detail
-
newClassObject
protected org.datanucleus.metadata.ClassMetaData newClassObject(org.datanucleus.metadata.PackageMetaData pmd, Attributes attrs, boolean embeddedOnly)
Utility to create a new class component.- Parameters:
pmd
- The parent PackageMetaDataattrs
- The attributesembeddedOnly
- Whether this class is embedded-only- Returns:
- The ClassMetaData
-
newFieldObject
protected org.datanucleus.metadata.AbstractMemberMetaData newFieldObject(org.datanucleus.metadata.AbstractClassMetaData acmd, Attributes attrs, String dfgDefault)
Utility to create a new field/property component and add it to the class as required. If the field/property already exists- Parameters:
acmd
- The parent class MetaDataattrs
- The attributesdfgDefault
- The default for DFG for this field if not specified- Returns:
- The FieldMetaData/PropertyMetaData
-
newPKFieldObject
protected org.datanucleus.metadata.AbstractMemberMetaData newPKFieldObject(org.datanucleus.metadata.AbstractClassMetaData acmd, Attributes attrs)
Utility to create a new primary key field/property component.- Parameters:
acmd
- The parent class MetaDataattrs
- Attributes of the "id" element- Returns:
- The FieldMetaData/PropertyMetaData
-
newTransientFieldObject
protected org.datanucleus.metadata.AbstractMemberMetaData newTransientFieldObject(org.datanucleus.metadata.MetaData md, String name)
Utility to create a new transient field/property component.- Parameters:
md
- The parent MetaDataname
- Name of the transient field- Returns:
- The FieldMetaData/PropertyMetaData
-
newEmbeddedFieldObject
protected org.datanucleus.metadata.AbstractMemberMetaData newEmbeddedFieldObject(org.datanucleus.metadata.MetaData md, String name)
Utility to create a new embedded field/property component.- Parameters:
md
- The parent MetaDataname
- Name of the embedded field- Returns:
- The FieldMetaData/PropertyMetaData
-
newOverriddenFieldObject
protected org.datanucleus.metadata.AbstractMemberMetaData newOverriddenFieldObject(org.datanucleus.metadata.MetaData md, Attributes attrs)
Utility to create a new field entry for a field/property in a superclass.- Parameters:
md
- The parent MetaDataattrs
- Attributes of the element- Returns:
- The FieldMetaData/PropertyMetaData
-
newOverriddenEmbeddedFieldObject
protected org.datanucleus.metadata.AbstractMemberMetaData newOverriddenEmbeddedFieldObject(org.datanucleus.metadata.EmbeddedMetaData embmd, Attributes attrs)
Utility to create a new field entry for a field/property in a superclass.- Parameters:
embmd
- The parent MetaDataattrs
- Attributes of the "id" element- Returns:
- The FieldMetaData/PropertyMetaData
-
newOverriddenEmbeddedFieldObject
protected org.datanucleus.metadata.AbstractMemberMetaData newOverriddenEmbeddedFieldObject(org.datanucleus.metadata.EmbeddedMetaData embmd, String memberName, String columnName)
Recursive method to process embedded member overrides.- Parameters:
embmd
- The parent MetaDatamemberName
- The member name being overriddencolumnName
- Column name to override it with- Returns:
- The FieldMetaData/PropertyMetaData
-
startElement
public void startElement(String uri, String localName, String qName, Attributes attrs) throws SAXException
Handler method called at the start of an element.- Specified by:
startElement
in interfaceContentHandler
- Overrides:
startElement
in classDefaultHandler
- Parameters:
uri
- URI of the taglocalName
- Local nameqName
- Element nameattrs
- Attributes for this element- Throws:
SAXException
- in parsing errors
-
endElement
public void endElement(String uri, String localName, String qName) throws SAXException
Handler method called at the end of an element.- Specified by:
endElement
in interfaceContentHandler
- Overrides:
endElement
in classDefaultHandler
- Parameters:
uri
- URI of the taglocalName
- local nameqName
- Name of element just ending- Throws:
SAXException
- in parsing errors
-
-