use of org.eclipse.persistence.internal.jpa.metadata.partitioning.ReplicationPartitioningMetadata in project eclipselink by eclipse-ee4j.
the class MetadataAccessor method processPartitioning.
/**
* Process the partitioning policies defined on this element.
*/
protected void processPartitioning() {
boolean found = false;
// Check for XML defined partitioning.
if (m_replicationPartitioning != null) {
found = true;
getProject().addPartitioningPolicy(m_replicationPartitioning);
}
if (m_roundRobinPartitioning != null) {
found = true;
getProject().addPartitioningPolicy(m_roundRobinPartitioning);
}
if (m_partitioning != null) {
found = true;
getProject().addPartitioningPolicy(m_partitioning);
}
if (m_rangePartitioning != null) {
found = true;
getProject().addPartitioningPolicy(m_rangePartitioning);
}
if (m_valuePartitioning != null) {
found = true;
getProject().addPartitioningPolicy(m_valuePartitioning);
}
if (m_hashPartitioning != null) {
found = true;
getProject().addPartitioningPolicy(m_hashPartitioning);
}
if (m_unionPartitioning != null) {
found = true;
getProject().addPartitioningPolicy(m_unionPartitioning);
}
if (m_pinnedPartitioning != null) {
found = true;
getProject().addPartitioningPolicy(m_pinnedPartitioning);
}
// Check for partitioning annotations.
MetadataAnnotation annotation = getAnnotation(Partitioning.class);
if (annotation != null) {
found = true;
getProject().addPartitioningPolicy(new PartitioningMetadata(annotation, this));
}
annotation = getAnnotation(ReplicationPartitioning.class);
if (annotation != null) {
found = true;
getProject().addPartitioningPolicy(new ReplicationPartitioningMetadata(annotation, this));
}
annotation = getAnnotation(RoundRobinPartitioning.class);
if (annotation != null) {
found = true;
getProject().addPartitioningPolicy(new RoundRobinPartitioningMetadata(annotation, this));
}
annotation = getAnnotation(UnionPartitioning.class);
if (annotation != null) {
found = true;
getProject().addPartitioningPolicy(new UnionPartitioningMetadata(annotation, this));
}
annotation = getAnnotation(RangePartitioning.class);
if (annotation != null) {
found = true;
getProject().addPartitioningPolicy(new RangePartitioningMetadata(annotation, this));
}
annotation = getAnnotation(ValuePartitioning.class);
if (annotation != null) {
found = true;
getProject().addPartitioningPolicy(new ValuePartitioningMetadata(annotation, this));
}
annotation = getAnnotation(ValuePartitioning.class);
if (annotation != null) {
found = true;
getProject().addPartitioningPolicy(new ValuePartitioningMetadata(annotation, this));
}
annotation = getAnnotation(PinnedPartitioning.class);
if (annotation != null) {
found = true;
getProject().addPartitioningPolicy(new PinnedPartitioningMetadata(annotation, this));
}
annotation = getAnnotation(HashPartitioning.class);
if (annotation != null) {
found = true;
getProject().addPartitioningPolicy(new HashPartitioningMetadata(annotation, this));
}
boolean processed = false;
if (m_partitioned != null) {
processed = true;
processPartitioned(m_partitioned);
}
annotation = getAnnotation(Partitioned.class);
if (!processed && annotation != null) {
processed = true;
processPartitioned(annotation.getAttributeString("value"));
}
if (found && !processed) {
getLogger().logWarningMessage(MetadataLogger.WARNING_PARTIONED_NOT_SET, getJavaClass(), getAccessibleObject());
}
}
use of org.eclipse.persistence.internal.jpa.metadata.partitioning.ReplicationPartitioningMetadata in project eclipselink by eclipse-ee4j.
the class XMLEntityMappings method process.
/**
* INTERNAL:
* Process the metadata from the <entity-mappings> level except for the
* classes themselves. They will be processed afterwards and controlled
* by the MetadataProcessor. Note: this method does a few things of
* interest. It not only adds metadata to the project but it will also
* override (that is EclipseLink-ORM-XML-->JPA-XML {@literal &&} JPA-XML-->Annotation)
* the necessary metadata and log messages to the user. A validation
* exception could also be thrown. See the related processing methods for
* more details.
*
* Any XML metadata of the types processed below should call these methods.
* That is, as an example, a converter can be found at the entity-mappings
* and entity level. Therefore you must ensure that those from levels other
* than the entity-mappings call these methods as well to ensure consistent
* metadata processing (and behavior).
*/
public void process() {
// Add the XML converters to the project.
for (ConverterMetadata converter : m_converters) {
converter.initXMLObject(m_file, this);
m_project.addConverter(converter);
}
// Add the XML type converters to the project.
for (TypeConverterMetadata typeConverter : m_typeConverters) {
typeConverter.initXMLObject(m_file, this);
m_project.addConverter(typeConverter);
}
// Add the XML object type converters to the project.
for (ObjectTypeConverterMetadata objectTypeConverter : m_objectTypeConverters) {
objectTypeConverter.initXMLObject(m_file, this);
m_project.addConverter(objectTypeConverter);
}
// Add the XML serialized converters to the project.
for (SerializedConverterMetadata serializedConverter : m_serializedConverters) {
serializedConverter.initXMLObject(m_file, this);
m_project.addConverter(serializedConverter);
}
// Add the XML struct converters to the project.
for (StructConverterMetadata structConverter : m_structConverters) {
structConverter.initXMLObject(m_file, this);
m_project.addConverter(structConverter);
}
// Add the XML table generators to the project.
for (TableGeneratorMetadata tableGenerator : m_tableGenerators) {
tableGenerator.initXMLObject(m_file, this);
m_project.addTableGenerator(tableGenerator, getDefaultCatalog(), getDefaultSchema());
}
// Add the XML sequence generators to the project.
for (SequenceGeneratorMetadata sequenceGenerator : m_sequenceGenerators) {
sequenceGenerator.initXMLObject(m_file, this);
m_project.addSequenceGenerator(sequenceGenerator, getDefaultCatalog(), getDefaultSchema());
}
// Add the XML uuid generators to the project.
for (UuidGeneratorMetadata uuidGenerator : m_uuidGenerators) {
uuidGenerator.initXMLObject(m_file, this);
m_project.addUuidGenerator(uuidGenerator);
}
// Add the partitioning to the project.
for (PartitioningMetadata partitioning : m_partitioning) {
partitioning.initXMLObject(m_file, this);
m_project.addPartitioningPolicy(partitioning);
}
// Add the replication partitioning to the project.
for (ReplicationPartitioningMetadata partitioning : m_replicationPartitioning) {
partitioning.initXMLObject(m_file, this);
m_project.addPartitioningPolicy(partitioning);
}
// Add the round robin partitioning to the project.
for (RoundRobinPartitioningMetadata partitioning : m_roundRobinPartitioning) {
partitioning.initXMLObject(m_file, this);
m_project.addPartitioningPolicy(partitioning);
}
// Add the pinned partitioning to the project.
for (PinnedPartitioningMetadata partitioning : m_pinnedPartitioning) {
partitioning.initXMLObject(m_file, this);
m_project.addPartitioningPolicy(partitioning);
}
// Add the range partitioning to the project.
for (RangePartitioningMetadata partitioning : m_rangePartitioning) {
partitioning.initXMLObject(m_file, this);
m_project.addPartitioningPolicy(partitioning);
}
// Add the value partitioning to the project.
for (ValuePartitioningMetadata partitioning : m_valuePartitioning) {
partitioning.initXMLObject(m_file, this);
m_project.addPartitioningPolicy(partitioning);
}
// Add the hash partitioning to the project.
for (HashPartitioningMetadata partitioning : m_hashPartitioning) {
partitioning.initXMLObject(m_file, this);
m_project.addPartitioningPolicy(partitioning);
}
// Add the XML named queries to the project.
for (NamedQueryMetadata namedQuery : m_namedQueries) {
namedQuery.initXMLObject(m_file, this);
m_project.addQuery(namedQuery);
}
// Add the XML named native queries to the project.
for (NamedNativeQueryMetadata namedNativeQuery : m_namedNativeQueries) {
namedNativeQuery.initXMLObject(m_file, this);
m_project.addQuery(namedNativeQuery);
}
// Add the XML named stored procedure queries to the project.
for (NamedStoredProcedureQueryMetadata namedStoredProcedureQuery : m_namedStoredProcedureQueries) {
namedStoredProcedureQuery.initXMLObject(m_file, this);
m_project.addQuery(namedStoredProcedureQuery);
}
// Add the XML named stored function queries to the project.
for (NamedStoredFunctionQueryMetadata namedStoredFunctionQuery : m_namedStoredFunctionQueries) {
namedStoredFunctionQuery.initXMLObject(m_file, this);
m_project.addQuery(namedStoredFunctionQuery);
}
// Add the XML named stored procedure queries to the project.
for (NamedPLSQLStoredProcedureQueryMetadata namedPLSQLStoredProcedureQuery : m_namedPLSQLStoredProcedureQueries) {
namedPLSQLStoredProcedureQuery.initXMLObject(m_file, this);
m_project.addQuery(namedPLSQLStoredProcedureQuery);
}
// Add the XML named stored function queries to the project.
for (NamedPLSQLStoredFunctionQueryMetadata namedPLSQLStoredFunctionQuery : m_namedPLSQLStoredFunctionQueries) {
namedPLSQLStoredFunctionQuery.initXMLObject(m_file, this);
m_project.addQuery(namedPLSQLStoredFunctionQuery);
}
// Add the XML sql result set mappings to the project.
for (SQLResultSetMappingMetadata sqlResultSetMapping : m_sqlResultSetMappings) {
sqlResultSetMapping.initXMLObject(m_file, this);
m_project.addSQLResultSetMapping(sqlResultSetMapping);
}
// Add the Oracle object types to the project.
for (OracleObjectTypeMetadata oType : m_oracleObjectTypes) {
oType.initXMLObject(m_file, this);
m_project.addComplexMetadataType(oType);
}
// Add the Oracle array types to the project.
for (OracleArrayTypeMetadata aType : m_oracleArrayTypes) {
aType.initXMLObject(m_file, this);
m_project.addComplexMetadataType(aType);
}
// Add the PLSQL types to the project.
for (PLSQLRecordMetadata record : m_plsqlRecords) {
record.initXMLObject(m_file, this);
m_project.addComplexMetadataType(record);
}
// Add the PLSQL tables to the project.
for (PLSQLTableMetadata table : m_plsqlTables) {
table.initXMLObject(m_file, this);
m_project.addComplexMetadataType(table);
}
}
Aggregations