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/jpa1/context/orm/GenericOrmAttributeOverride.java')
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmAttributeOverride.java239
1 files changed, 0 insertions, 239 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmAttributeOverride.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmAttributeOverride.java
deleted file mode 100644
index 4467fd0c12..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmAttributeOverride.java
+++ /dev/null
@@ -1,239 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 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.jpa1.context.orm;
-
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.AttributeMapping;
-import org.eclipse.jpt.core.context.BaseColumn;
-import org.eclipse.jpt.core.context.Column;
-import org.eclipse.jpt.core.context.NamedColumn;
-import org.eclipse.jpt.core.context.TypeMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeOverride;
-import org.eclipse.jpt.core.context.orm.OrmAttributeOverrideContainer;
-import org.eclipse.jpt.core.context.orm.OrmColumn;
-import org.eclipse.jpt.core.internal.context.BaseColumnTextRangeResolver;
-import org.eclipse.jpt.core.internal.context.JptValidator;
-import org.eclipse.jpt.core.internal.context.NamedColumnTextRangeResolver;
-import org.eclipse.jpt.core.internal.validation.DefaultJpaValidationMessages;
-import org.eclipse.jpt.core.internal.validation.JpaValidationMessages;
-import org.eclipse.jpt.core.jpa2.context.AttributeOverride2_0;
-import org.eclipse.jpt.core.jpa2.context.SingleRelationshipMapping2_0;
-import org.eclipse.jpt.core.resource.orm.OrmFactory;
-import org.eclipse.jpt.core.resource.orm.XmlAttributeOverride;
-import org.eclipse.jpt.core.resource.orm.XmlColumn;
-import org.eclipse.jpt.db.Table;
-import org.eclipse.jpt.utility.internal.iterables.CompositeIterable;
-import org.eclipse.jpt.utility.internal.iterables.FilteringIterable;
-import org.eclipse.jpt.utility.internal.iterables.SubIterableWrapper;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public class GenericOrmAttributeOverride
- extends AbstractOrmOverride
- implements AttributeOverride2_0, OrmAttributeOverride, OrmColumn.Owner
-{
- protected final OrmColumn column;
-
- /* 2.0 feature - a relationship may map this attribute override */
- protected boolean mappedByRelationship;
-
-
- public GenericOrmAttributeOverride(
- OrmAttributeOverrideContainer parent,
- OrmAttributeOverride.Owner owner,
- XmlAttributeOverride resourceAttributeOverride) {
-
- super(parent, owner, resourceAttributeOverride);
- this.column = getXmlContextNodeFactory().buildOrmColumn(this, this);
- this.column.initialize(resourceAttributeOverride.getColumn());
-
- this.mappedByRelationship = //calculateMappedByRelationship();
- // TODO - move this real calculation to a (currently nonexistent) initialize method
- false;
- }
-
-
- public OrmAttributeOverride setVirtual(boolean virtual) {
- return (OrmAttributeOverride) getOwner().setVirtual(virtual, this);
- }
-
-
- @Override
- public OrmAttributeOverride.Owner getOwner() {
- return (OrmAttributeOverride.Owner) super.getOwner();
- }
-
- @Override
- protected XmlAttributeOverride getResourceOverride() {
- return (XmlAttributeOverride) super.getResourceOverride();
- }
-
-
- // ********************* column ****************
-
- public OrmColumn getColumn() {
- return this.column;
- }
-
- //************* NamedColumn.Owner implementation **************
-
- public TypeMapping getTypeMapping() {
- return getOwner().getTypeMapping();
- }
-
- public Table getDbTable(String tableName) {
- return this.getOwner().getDbTable(tableName);
- }
-
- public String getDefaultColumnName() {
- Column column = resolveOverriddenColumn();
- if (column == null) {
- return getName();
- }
- return column.getName();
- }
-
-
- //************* BaseColumn.Owner implementation **************
-
- public String getDefaultTableName() {
- Column column = resolveOverriddenColumn();
- if (column != null) {
- String tableName = column.getSpecifiedTable();
- if (tableName != null) {
- return tableName;
- }
- }
- return getOwner().getDefaultTableName();
- }
-
- protected Column resolveOverriddenColumn() {
- return isVirtual() ? getOwner().resolveOverriddenColumn(getName()) : null;
- }
-
- public boolean tableNameIsInvalid(String tableName) {
- return getOwner().tableNameIsInvalid(tableName);
- }
-
- public Iterator<String> candidateTableNames() {
- return getOwner().candidateTableNames();
- }
-
- public boolean isVirtual() {
- return getOwner().isVirtual(this);
- }
-
-
- //***************** OrmColumn.Owner implementation ****************
-
- public XmlColumn getResourceColumn() {
- return this.getResourceOverride().getColumn();
- }
-
- protected boolean isColumnSpecified() {
- return getResourceColumn() != null;
- }
-
- public void addResourceColumn() {
- this.getResourceOverride().setColumn(OrmFactory.eINSTANCE.createXmlColumn());
- }
-
- public void removeResourceColumn() {
- this.getResourceOverride().setColumn(null);
- }
-
-
- // **************** AttributeOverride2_0 impl *****************************
-
- public boolean isMappedByRelationship() {
- return this.mappedByRelationship;
- }
-
- protected void setMappedByRelationship(boolean newValue) {
- boolean oldValue = this.mappedByRelationship;
- this.mappedByRelationship = newValue;
- firePropertyChanged(MAPPED_BY_RELATIONSHIP_PROPERTY, oldValue, newValue);
- }
-
- protected boolean calculateMappedByRelationship() {
- for (SingleRelationshipMapping2_0 each : getMapsIdRelationships()) {
- if (getName() == null) {
- return false;
- }
-
- // overrideable names are (usually?) qualified with a container mapping,
- // which may also be the one mapped by a relationship
- String qualifier =
- (getName().indexOf('.') > 0) ?
- getName().substring(0, getName().indexOf('.'))
- : getName();
- return qualifier.equals(each.getDerivedIdentity().getMapsIdDerivedIdentityStrategy().getValue());
- }
- return false;
- }
-
- protected Iterable<SingleRelationshipMapping2_0> getMapsIdRelationships() {
- return new FilteringIterable<SingleRelationshipMapping2_0>(
- new SubIterableWrapper<AttributeMapping, SingleRelationshipMapping2_0>(
- new CompositeIterable<AttributeMapping>(
- getTypeMapping().getAllAttributeMappings(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY),
- getTypeMapping().getAllAttributeMappings(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY)))) {
- @Override
- protected boolean accept(SingleRelationshipMapping2_0 o) {
- return o.getDerivedIdentity().usesMapsIdDerivedIdentityStrategy();
- }
- };
- }
-
-
- // **************** resource -> context ***********************************
-
- public void update(XmlAttributeOverride xmlAttributeOverride) {
- super.update(xmlAttributeOverride);
- this.column.update(xmlAttributeOverride.getColumn());
- setMappedByRelationship(calculateMappedByRelationship());
- }
-
-
- //****************** validation ********************
-
- @Override
- public void validate(List<IMessage> messages, IReporter reporter) {
- super.validate(messages, reporter);
-
- // [JPA 2.0] if the column is specified, or if the override is not mapped by a relationship,
- // then the column is validated.
- // (In JPA 1.0, the column will always be validated, since the override is never mapped by a
- // relationship)
- if (isColumnSpecified() || ! isMappedByRelationship()) {
- getColumn().validate(messages, reporter);
- }
-
- // [JPA 2.0] if the override is mapped by a relationship, then that actually is in itself
- // a validation error
- // (We prevent implied overrides that are mapped by a relationship ... hopefully)
- // (In JPA 1.0, this will never occur)
- if (isMappedByRelationship()) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.ATTRIBUTE_OVERRIDE_MAPPED_BY_RELATIONSHIP_AND_SPECIFIED,
- new String[] {},
- this,
- getValidationTextRange()));
- }
- }
-
- public JptValidator buildColumnValidator(NamedColumn column, NamedColumnTextRangeResolver textRangeResolver) {
- return getOwner().buildColumnValidator(this, (BaseColumn) column, this, (BaseColumnTextRangeResolver) textRangeResolver);
- }
-}

Back to the top