Package org.apache.openjpa.persistence
Class XMLPersistenceMetaDataSerializer
java.lang.Object
org.apache.openjpa.lib.meta.XMLMetaDataSerializer
org.apache.openjpa.lib.meta.CFMetaDataSerializer
org.apache.openjpa.persistence.XMLPersistenceMetaDataSerializer
- All Implemented Interfaces:
MetaDataSerializer
,AbstractCFMetaDataFactory.Serializer
- Direct Known Subclasses:
XMLPersistenceMappingSerializer
public class XMLPersistenceMetaDataSerializer
extends CFMetaDataSerializer
implements AbstractCFMetaDataFactory.Serializer
Serializes persistence metadata back to XML.
This class processes all object level tags that are store-agnostic.
However, it provides hooks for the subclasses to include store-specific
tags to be serialized both at <entity-mappings> and
<entity> level.
- Since:
- 0.4.0
- Author:
- Steve Kim
-
Nested Class Summary
Modifier and TypeClassDescriptionprotected class
Compares clases, sequences, and queries to order them for serialization. -
Field Summary
Modifier and TypeFieldDescriptionprotected static final int
protected static final int
protected static final int
protected static final int
protected static final int
Fields inherited from interface org.apache.openjpa.lib.meta.MetaDataSerializer
APPEND, COMPACT, PRETTY, VERBOSE
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addAll
(MetaDataRepository repos) Add all components in the given repository to the set to be serialized.protected void
addClassMappingAttributes
(ClassMetaData mapping) Add mapping attributes for the given class.protected void
addFieldMappingAttributes
(FieldMetaData fmd, FieldMetaData orig) Add mapping attributes for the given field.void
addMetaData
(ClassMetaData meta) Add a class meta data to the set to be serialized.void
Add a query meta data to the set to be serialized.void
Add a sequence meta data to the set to be serialized.protected void
Set mapping attributes for strategy.protected void
addSystemMappingElements
(Collection toSerialize) Add system-level mapping elements to be serialized.void
clear()
Clear the set of metadatas to be serialized.Returns the stored ClassMetaDataConfiguration.int
getMode()
The serialization mode according to the expected document type.protected Collection
Return the current set of objects for serialization.protected String
getPackage
(Object obj) Return the package name of the given object, or null if not in a package.boolean
Whether to serialize content originally specified in annotations.protected File
getSourceFile
(Object obj) Override to not overwrite annotations.protected PersistenceStrategy
getStrategy
(FieldMetaData fmd) Return the serialized strategy name.protected boolean
Convenience method for interpretinggetMode()
.protected boolean
isMappingMode
(ClassMetaData meta) Convenience method for interpretinggetMode()
.protected boolean
Convenience method for interpretinggetMode()
.protected boolean
Convenience method for interpretinggetMode()
.protected boolean
Convenience method for interpretinggetMode()
.Create a new comparator for ordering objects that are to be serialized.boolean
removeAll
(MetaDataRepository repos) Remove all the components in the given repository from the set to be serialized.boolean
removeMetaData
(ClassMetaData meta) Remove a metadata from the set to be serialized.boolean
Remove a query metadata from the set to be serialized.boolean
Remove a sequence metadata from the set to be serialized.protected void
serialize
(Collection objects) Serialize the given set of objects.protected boolean
serializeAttributeOverride
(FieldMetaData fmd, FieldMetaData orig) Always returns false by default.protected void
Serialize attribute override mapping content.protected void
serializeClass
(ClassMetaData meta, boolean access) Serialize class metadata.protected void
Serialize class mapping content.protected void
serializeFieldMappingContent
(FieldMetaData fmd, PersistenceStrategy strategy) Serialize field mapping content; this will be called before#serializeValueMappingContent
.protected void
serializeInheritanceContent
(ClassMetaData mapping) Serialize inheritance content.protected void
Order column is not processed as meta data, instead it can be processed as mapping data if in mapping mode.protected void
Serialize query mappings.protected void
Serialize sequence metadata.protected void
Serialize unknown mapping element at system level.void
setMode
(int mode) The serialization mode according to the expected document type.void
setMode
(int mode, boolean on) The serialization mode according to the expected document type.void
setSerializeAnnotations
(boolean annos) Whether to serialize content originally specified in annotations.protected int
Return the type constant for the given object based on its runtime class.Methods inherited from class org.apache.openjpa.lib.meta.CFMetaDataSerializer
getClassName, getPackage, groupByPackage, setPackage
Methods inherited from class org.apache.openjpa.lib.meta.XMLMetaDataSerializer
addAttribute, addComments, addComments, addText, currentBackupFile, endElement, getAttributes, getFileMap, getLog, isVerbose, prepareWrite, reset, serialize, serialize, serialize, serialize, serialize, serialize, setLog, startElement
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.MetaDataSerializer
serialize, serialize, serialize, serialize
-
Field Details
-
TYPE_SEQ
protected static final int TYPE_SEQ- See Also:
-
TYPE_QUERY
protected static final int TYPE_QUERY- See Also:
-
TYPE_META
protected static final int TYPE_META- See Also:
-
TYPE_CLASS_SEQS
protected static final int TYPE_CLASS_SEQS- See Also:
-
TYPE_CLASS_QUERIES
protected static final int TYPE_CLASS_QUERIES- See Also:
-
-
Constructor Details
-
XMLPersistenceMetaDataSerializer
Constructor. Supply configuration.
-
-
Method Details
-
getConfiguration
Configuration. -
getSerializeAnnotations
public boolean getSerializeAnnotations()Whether to serialize content originally specified in annotations. Defaults to true. -
setSerializeAnnotations
public void setSerializeAnnotations(boolean annos) Whether to serialize content originally specified in annotations. Defaults to true. -
getMode
public int getMode()The serialization mode according to the expected document type. The mode constants act as bit flags, and therefore can be combined. -
setMode
public void setMode(int mode) The serialization mode according to the expected document type. The mode constants act as bit flags, and therefore can be combined.- Specified by:
setMode
in interfaceAbstractCFMetaDataFactory.Serializer
-
setMode
public void setMode(int mode, boolean on) The serialization mode according to the expected document type. -
getSourceFile
Override to not overwrite annotations.- Overrides:
getSourceFile
in classXMLMetaDataSerializer
-
isMetaDataMode
protected boolean isMetaDataMode()Convenience method for interpretinggetMode()
. -
isQueryMode
protected boolean isQueryMode()Convenience method for interpretinggetMode()
. -
isMappingMode
protected boolean isMappingMode()Convenience method for interpretinggetMode()
. -
isMappingMode
Convenience method for interpretinggetMode()
. Takes into account whether mapping information is loaded for the given instance. -
isMappingMode
Convenience method for interpretinggetMode()
. Takes into account whether mapping information is loaded for the given instance. -
addMetaData
Add a class meta data to the set to be serialized.- Specified by:
addMetaData
in interfaceAbstractCFMetaDataFactory.Serializer
-
addSequenceMetaData
Add a sequence meta data to the set to be serialized.- Specified by:
addSequenceMetaData
in interfaceAbstractCFMetaDataFactory.Serializer
-
addQueryMetaData
Add a query meta data to the set to be serialized.- Specified by:
addQueryMetaData
in interfaceAbstractCFMetaDataFactory.Serializer
-
addAll
Add all components in the given repository to the set to be serialized.- Specified by:
addAll
in interfaceAbstractCFMetaDataFactory.Serializer
-
removeMetaData
Remove a metadata from the set to be serialized.- Specified by:
removeMetaData
in interfaceAbstractCFMetaDataFactory.Serializer
- Returns:
- true if removed, false if not in set
-
removeSequenceMetaData
Remove a sequence metadata from the set to be serialized.- Returns:
- true if removed, false if not in set
-
removeQueryMetaData
Remove a query metadata from the set to be serialized.- Returns:
- true if removed, false if not in set
-
removeAll
Remove all the components in the given repository from the set to be serialized.- Returns:
- true if any components removed, false if none in set
-
clear
public void clear()Clear the set of metadatas to be serialized. -
getObjects
Description copied from class:XMLMetaDataSerializer
Return the current set of objects for serialization.- Specified by:
getObjects
in classXMLMetaDataSerializer
-
addSystemMappingElements
Add system-level mapping elements to be serialized. Does nothing by default. -
newSerializationComparator
Create a new comparator for ordering objects that are to be serialized. -
serialize
Description copied from class:XMLMetaDataSerializer
Serialize the given set of objects.- Specified by:
serialize
in classXMLMetaDataSerializer
- Throws:
SAXException
-
getPackage
Description copied from class:CFMetaDataSerializer
Return the package name of the given object, or null if not in a package. Used byCFMetaDataSerializer.groupByPackage(java.util.Collection<java.lang.Object>)
. Returns null by default.- Overrides:
getPackage
in classCFMetaDataSerializer
-
type
Return the type constant for the given object based on its runtime class. If the runtime class does not correspond to any of the known types then returns -1. This can happen for tags that are not handled at this store-agnostic level. -
serializeSystemMappingElement
Serialize unknown mapping element at system level.- Throws:
SAXException
-
serializeSequence
Serialize sequence metadata.- Throws:
SAXException
-
serializeClass
Serialize class metadata.- Throws:
SAXException
-
addClassMappingAttributes
Add mapping attributes for the given class. Does nothing by default- Throws:
SAXException
-
serializeClassMappingContent
Serialize class mapping content. Does nothing by default.- Throws:
SAXException
-
serializeInheritanceContent
Serialize inheritance content. Does nothing by default.- Throws:
SAXException
-
serializeQueryMappings
Serialize query mappings. Does nothing by default.- Throws:
SAXException
-
addFieldMappingAttributes
Add mapping attributes for the given field. Does nothing by default.- Throws:
SAXException
-
serializeAttributeOverride
Always returns false by default. -
serializeAttributeOverrideMappingContent
protected void serializeAttributeOverrideMappingContent(FieldMetaData fmd, FieldMetaData orig) throws SAXException Serialize attribute override mapping content. Does nothing by default,- Throws:
SAXException
-
getStrategy
Return the serialized strategy name. -
serializeFieldMappingContent
protected void serializeFieldMappingContent(FieldMetaData fmd, PersistenceStrategy strategy) throws SAXException Serialize field mapping content; this will be called before#serializeValueMappingContent
. Does nothing by default.- Throws:
SAXException
-
addStrategyMappingAttributes
Set mapping attributes for strategy. Sets mapped-by by default.- Throws:
SAXException
-
serializeOrderColumn
Order column is not processed as meta data, instead it can be processed as mapping data if in mapping mode.- Throws:
SAXException
-
getClassMetaData
Returns the stored ClassMetaData
-