Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmIdMapping.java')
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmIdMapping.java488
1 files changed, 0 insertions, 488 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmIdMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmIdMapping.java
deleted file mode 100644
index 2276b2d68c..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmIdMapping.java
+++ /dev/null
@@ -1,488 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- * Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.internal.context.orm;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.Converter;
-import org.eclipse.jpt.core.context.Generator;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmColumn;
-import org.eclipse.jpt.core.context.orm.OrmColumnMapping;
-import org.eclipse.jpt.core.context.orm.OrmConverter;
-import org.eclipse.jpt.core.context.orm.OrmGeneratedValue;
-import org.eclipse.jpt.core.context.orm.OrmGenerator;
-import org.eclipse.jpt.core.context.orm.OrmIdMapping;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmSequenceGenerator;
-import org.eclipse.jpt.core.context.orm.OrmTableGenerator;
-import org.eclipse.jpt.core.internal.validation.DefaultJpaValidationMessages;
-import org.eclipse.jpt.core.internal.validation.JpaValidationMessages;
-import org.eclipse.jpt.core.resource.orm.Attributes;
-import org.eclipse.jpt.core.resource.orm.OrmFactory;
-import org.eclipse.jpt.core.resource.orm.XmlColumn;
-import org.eclipse.jpt.core.resource.orm.XmlGeneratedValue;
-import org.eclipse.jpt.core.resource.orm.XmlId;
-import org.eclipse.jpt.core.resource.orm.XmlSequenceGenerator;
-import org.eclipse.jpt.core.resource.orm.XmlTableGenerator;
-import org.eclipse.jpt.db.Table;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public class GenericOrmIdMapping<T extends XmlId>
- extends AbstractOrmAttributeMapping<T>
- implements OrmIdMapping
-{
- protected final OrmColumn column;
-
- protected OrmGeneratedValue generatedValue;
-
- protected OrmConverter defaultConverter;
- protected OrmConverter specifiedConverter;
-
- protected OrmTableGenerator tableGenerator;
- protected OrmSequenceGenerator sequenceGenerator;
-
-
- public GenericOrmIdMapping(OrmPersistentAttribute parent, T resourceMapping) {
- super(parent, resourceMapping);
- this.column = getJpaFactory().buildOrmColumn(this, this);
- this.column.initialize(this.resourceAttributeMapping.getColumn());//TODO pass in to constructor
- this.initializeSequenceGenerator();
- this.initializeTableGenerator();
- this.initializeGeneratedValue();
- this.defaultConverter = new GenericOrmNullConverter(this);
- this.specifiedConverter = this.buildSpecifiedConverter(this.getResourceConverterType());
- }
-
-
- public String getKey() {
- return MappingKeys.ID_ATTRIBUTE_MAPPING_KEY;
- }
-
- public int getXmlSequence() {
- return 0;
- }
-
- public void initializeOn(OrmAttributeMapping newMapping) {
- newMapping.initializeFromOrmIdMapping(this);
- }
-
- @Override
- public void initializeFromOrmColumnMapping(OrmColumnMapping oldMapping) {
- super.initializeFromOrmColumnMapping(oldMapping);
- getColumn().initializeFrom(oldMapping.getColumn());
- }
-
-
- public OrmColumn getColumn() {
- return this.column;
- }
-
- public OrmConverter getConverter() {
- return getSpecifiedConverter() == null ? getDefaultConverter() : getSpecifiedConverter();
- }
-
- public OrmConverter getDefaultConverter() {
- return this.defaultConverter;
- }
-
- public OrmConverter getSpecifiedConverter() {
- return this.specifiedConverter;
- }
-
- protected String getSpecifedConverterType() {
- if (this.specifiedConverter == null) {
- return Converter.NO_CONVERTER;
- }
- return this.specifiedConverter.getType();
- }
-
- public void setSpecifiedConverter(String converterType) {
- if (getSpecifedConverterType() == converterType) {
- return;
- }
- OrmConverter oldConverter = this.specifiedConverter;
- OrmConverter newConverter = buildSpecifiedConverter(converterType);
- this.specifiedConverter = null;
- if (oldConverter != null) {
- oldConverter.removeFromResourceModel();
- }
- this.specifiedConverter = newConverter;
- if (newConverter != null) {
- newConverter.addToResourceModel();
- }
- firePropertyChanged(SPECIFIED_CONVERTER_PROPERTY, oldConverter, newConverter);
- }
-
- protected void setSpecifiedConverter(OrmConverter newConverter) {
- OrmConverter oldConverter = this.specifiedConverter;
- this.specifiedConverter = newConverter;
- firePropertyChanged(SPECIFIED_CONVERTER_PROPERTY, oldConverter, newConverter);
- }
-
- public OrmGeneratedValue addGeneratedValue() {
- if (getGeneratedValue() != null) {
- throw new IllegalStateException("gemeratedValue already exists"); //$NON-NLS-1$
- }
- XmlGeneratedValue resourceGeneratedValue = OrmFactory.eINSTANCE.createXmlGeneratedValueImpl();
- this.generatedValue = buildGeneratedValue(resourceGeneratedValue);
- this.resourceAttributeMapping.setGeneratedValue(resourceGeneratedValue);
- firePropertyChanged(GENERATED_VALUE_PROPERTY, null, this.generatedValue);
- return this.generatedValue;
- }
-
- public void removeGeneratedValue() {
- if (getGeneratedValue() == null) {
- throw new IllegalStateException("gemeratedValue does not exist, cannot be removed"); //$NON-NLS-1$
- }
- OrmGeneratedValue oldGeneratedValue = this.generatedValue;
- this.generatedValue = null;
- this.resourceAttributeMapping.setGeneratedValue(null);
- firePropertyChanged(GENERATED_VALUE_PROPERTY, oldGeneratedValue, null);
- }
-
- public OrmGeneratedValue getGeneratedValue() {
- return this.generatedValue;
- }
-
- protected void setGeneratedValue(OrmGeneratedValue newGeneratedValue) {
- OrmGeneratedValue oldGeneratedValue = this.generatedValue;
- this.generatedValue = newGeneratedValue;
- firePropertyChanged(GENERATED_VALUE_PROPERTY, oldGeneratedValue, newGeneratedValue);
- }
-
- public OrmSequenceGenerator addSequenceGenerator() {
- if (getSequenceGenerator() != null) {
- throw new IllegalStateException("sequenceGenerator already exists"); //$NON-NLS-1$
- }
- XmlSequenceGenerator resourceSequenceGenerator = OrmFactory.eINSTANCE.createXmlSequenceGeneratorImpl();
- this.sequenceGenerator = buildSequenceGenerator(resourceSequenceGenerator);
- this.resourceAttributeMapping.setSequenceGenerator(resourceSequenceGenerator);
- firePropertyChanged(SEQUENCE_GENERATOR_PROPERTY, null, this.sequenceGenerator);
- return this.sequenceGenerator;
- }
-
- public void removeSequenceGenerator() {
- if (getSequenceGenerator() == null) {
- throw new IllegalStateException("sequenceGenerator does not exist, cannot be removed"); //$NON-NLS-1$
- }
- OrmSequenceGenerator oldSequenceGenerator = this.sequenceGenerator;
- this.sequenceGenerator = null;
- this.resourceAttributeMapping.setSequenceGenerator(null);
- firePropertyChanged(SEQUENCE_GENERATOR_PROPERTY, oldSequenceGenerator, null);
- }
-
- public OrmSequenceGenerator getSequenceGenerator() {
- return this.sequenceGenerator;
- }
-
- protected void setSequenceGenerator(OrmSequenceGenerator newSequenceGenerator) {
- OrmSequenceGenerator oldSequenceGenerator = this.sequenceGenerator;
- this.sequenceGenerator = newSequenceGenerator;
- firePropertyChanged(SEQUENCE_GENERATOR_PROPERTY, oldSequenceGenerator, newSequenceGenerator);
- }
-
- public OrmTableGenerator addTableGenerator() {
- if (getTableGenerator() != null) {
- throw new IllegalStateException("tableGenerator already exists"); //$NON-NLS-1$
- }
- XmlTableGenerator resourceTableGenerator = OrmFactory.eINSTANCE.createXmlTableGeneratorImpl();
- this.tableGenerator = buildTableGenerator(resourceTableGenerator);
- this.resourceAttributeMapping.setTableGenerator(resourceTableGenerator);
- firePropertyChanged(TABLE_GENERATOR_PROPERTY, null, this.tableGenerator);
- return this.tableGenerator;
- }
-
- public void removeTableGenerator() {
- if (getTableGenerator() == null) {
- throw new IllegalStateException("tableGenerator does not exist, cannot be removed"); //$NON-NLS-1$
- }
- OrmTableGenerator oldTableGenerator = this.tableGenerator;
- this.tableGenerator = null;
- this.resourceAttributeMapping.setTableGenerator(null);
- firePropertyChanged(TABLE_GENERATOR_PROPERTY, oldTableGenerator, null);
- }
-
- public OrmTableGenerator getTableGenerator() {
- return this.tableGenerator;
- }
-
- protected void setTableGenerator(OrmTableGenerator newTableGenerator) {
- OrmTableGenerator oldTableGenerator = this.tableGenerator;
- this.tableGenerator = newTableGenerator;
- firePropertyChanged(TABLE_GENERATOR_PROPERTY, oldTableGenerator, newTableGenerator);
- }
-
- protected Iterator<OrmGenerator> generators() {
- ArrayList<OrmGenerator> generators = new ArrayList<OrmGenerator>();
- this.addGeneratorsTo(generators);
- return generators.iterator();
- }
-
- protected void addGeneratorsTo(ArrayList<OrmGenerator> generators) {
- if (this.sequenceGenerator != null) {
- generators.add(this.sequenceGenerator);
- }
- if (this.tableGenerator != null) {
- generators.add(this.tableGenerator);
- }
- }
-
- @Override
- public String getPrimaryKeyColumnName() {
- return this.getColumn().getName();
- }
-
- @Override
- public boolean isOverridableAttributeMapping() {
- return true;
- }
-
- @Override
- public boolean isIdMapping() {
- return true;
- }
-
- public void addToResourceModel(Attributes resourceAttributes) {
- resourceAttributes.getIds().add(this.resourceAttributeMapping);
- }
-
- public void removeFromResourceModel(Attributes resourceAttributes) {
- resourceAttributes.getIds().remove(this.resourceAttributeMapping);
- }
-
- public Table getDbTable(String tableName) {
- return getTypeMapping().getDbTable(tableName);
- }
-
- public String getDefaultColumnName() {
- return getName();
- }
-
- public String getDefaultTableName() {
- return getTypeMapping().getPrimaryTableName();
- }
-
- protected void initializeSequenceGenerator() {
- if (this.resourceAttributeMapping.getSequenceGenerator() != null) {
- this.sequenceGenerator = buildSequenceGenerator(this.resourceAttributeMapping.getSequenceGenerator());
- }
- }
-
- protected OrmSequenceGenerator buildSequenceGenerator(XmlSequenceGenerator resourceSequenceGenerator) {
- return getJpaFactory().buildOrmSequenceGenerator(this, resourceSequenceGenerator);
- }
-
- protected void initializeTableGenerator() {
- if (this.resourceAttributeMapping.getTableGenerator() != null) {
- this.tableGenerator = buildTableGenerator(this.resourceAttributeMapping.getTableGenerator());
- }
- }
-
- protected OrmTableGenerator buildTableGenerator(XmlTableGenerator resourceTableGenerator) {
- return getJpaFactory().buildOrmTableGenerator(this, resourceTableGenerator);
- }
-
- protected void initializeGeneratedValue() {
- if (this.resourceAttributeMapping.getGeneratedValue() != null) {
- this.generatedValue = buildGeneratedValue(this.resourceAttributeMapping.getGeneratedValue());
- }
- }
-
- protected OrmGeneratedValue buildGeneratedValue(XmlGeneratedValue resourceGeneratedValue) {
- return getJpaFactory().buildOrmGeneratedValue(this, resourceGeneratedValue);
- }
-
- @Override
- public void update() {
- super.update();
- this.column.update(getResourceColumn());
- this.updateSequenceGenerator();
- this.updateTableGenerator();
- this.updateGeneratedValue();
- if (getResourceConverterType() == getSpecifedConverterType()) {
- getSpecifiedConverter().update();
- }
- else {
- setSpecifiedConverter(buildSpecifiedConverter(getResourceConverterType()));
- }
- }
-
- protected void updateSequenceGenerator() {
- if (this.resourceAttributeMapping.getSequenceGenerator() == null) {
- if (getSequenceGenerator() != null) {
- setSequenceGenerator(null);
- }
- }
- else {
- if (getSequenceGenerator() == null) {
- setSequenceGenerator(buildSequenceGenerator(this.resourceAttributeMapping.getSequenceGenerator()));
- }
- else {
- getSequenceGenerator().update(this.resourceAttributeMapping.getSequenceGenerator());
- }
- }
- }
-
- protected void updateTableGenerator() {
- if (this.resourceAttributeMapping.getTableGenerator() == null) {
- if (getTableGenerator() != null) {
- setTableGenerator(null);
- }
- }
- else {
- if (getTableGenerator() == null) {
- setTableGenerator(buildTableGenerator(this.resourceAttributeMapping.getTableGenerator()));
- }
- else {
- getTableGenerator().update(this.resourceAttributeMapping.getTableGenerator());
- }
- }
- }
-
- protected void updateGeneratedValue() {
- if (this.resourceAttributeMapping.getGeneratedValue() == null) {
- if (getGeneratedValue() != null) {
- setGeneratedValue(null);
- }
- }
- else {
- if (getGeneratedValue() == null) {
- setGeneratedValue(buildGeneratedValue(this.resourceAttributeMapping.getGeneratedValue()));
- }
- else {
- getGeneratedValue().update(this.resourceAttributeMapping.getGeneratedValue());
- }
- }
- }
-
- protected OrmConverter buildSpecifiedConverter(String converterType) {
- if (converterType == Converter.TEMPORAL_CONVERTER) {
- return new GenericOrmTemporalConverter(this, this.resourceAttributeMapping);
- }
- return null;
- }
-
- protected String getResourceConverterType() {
- if (this.resourceAttributeMapping.getTemporal() != null) {
- return Converter.TEMPORAL_CONVERTER;
- }
-
- return null;
- }
-
- //***************** XmlColumn.Owner implementation ****************
-
- public XmlColumn getResourceColumn() {
- return this.resourceAttributeMapping.getColumn();
- }
-
- public void addResourceColumn() {
- this.resourceAttributeMapping.setColumn(OrmFactory.eINSTANCE.createXmlColumnImpl());
- }
-
- public void removeResourceColumn() {
- this.resourceAttributeMapping.setColumn(null);
- }
-
- // ****************** validation ****************
-
- @Override
- public void validate(List<IMessage> messages, IReporter reporter) {
- super.validate(messages, reporter);
-
- if (this.shouldValidateAgainstDatabase()) {
- this.validateColumn(messages);
- }
- if (this.generatedValue != null) {
- this.generatedValue.validate(messages, reporter);
- }
- this.validateGenerators(messages);
- }
-
- protected void validateColumn(List<IMessage> messages) {
- OrmPersistentAttribute pa = this.getPersistentAttribute();
- String tableName = this.column.getTable();
- if (this.getTypeMapping().tableNameIsInvalid(tableName)) {
- if (pa.isVirtual()) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.VIRTUAL_ATTRIBUTE_COLUMN_UNRESOLVED_TABLE,
- new String[] {pa.getName(), tableName, this.column.getName()},
- this.column,
- this.column.getTableTextRange()
- )
- );
- } else {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.COLUMN_UNRESOLVED_TABLE,
- new String[] {tableName, this.column.getName()},
- this.column,
- this.column.getTableTextRange()
- )
- );
- }
- return;
- }
-
- if ( ! this.column.isResolved() && this.column.getDbTable() != null) {
- if (pa.isVirtual()) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.VIRTUAL_ATTRIBUTE_COLUMN_UNRESOLVED_NAME,
- new String[] {pa.getName(), this.column.getName()},
- this.column,
- this.column.getNameTextRange()
- )
- );
- } else {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.COLUMN_UNRESOLVED_NAME,
- new String[] {this.column.getName()},
- this.column,
- this.column.getNameTextRange()
- )
- );
- }
- }
- }
-
- protected void validateGenerators(List<IMessage> messages) {
- for (Iterator<OrmGenerator> localGenerators = this.generators(); localGenerators.hasNext(); ) {
- OrmGenerator localGenerator = localGenerators.next();
- if (localGenerator.isVirtual()) {
- continue;
- }
- for (Iterator<Generator> globalGenerators = this.getPersistenceUnit().generators(); globalGenerators.hasNext(); ) {
- if (localGenerator.duplicates(globalGenerators.next())) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.GENERATOR_DUPLICATE_NAME,
- new String[] {localGenerator.getName()},
- localGenerator,
- localGenerator.getNameTextRange()
- )
- );
- }
- }
- }
- }
-
-}

Back to the top