diff options
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/AssociationOverrideJoinTableValidator.java')
-rw-r--r-- | jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/AssociationOverrideJoinTableValidator.java | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/AssociationOverrideJoinTableValidator.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/AssociationOverrideJoinTableValidator.java new file mode 100644 index 0000000000..c47f12d38e --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/AssociationOverrideJoinTableValidator.java @@ -0,0 +1,125 @@ +/******************************************************************************* + * Copyright (c) 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; + +import org.eclipse.jpt.core.context.AssociationOverride; +import org.eclipse.jpt.core.context.JoinTable; +import org.eclipse.jpt.core.context.PersistentAttribute; +import org.eclipse.jpt.core.internal.context.TableTextRangeResolver; +import org.eclipse.jpt.core.internal.validation.DefaultJpaValidationMessages; +import org.eclipse.jpt.core.internal.validation.JpaValidationMessages; +import org.eclipse.wst.validation.internal.provisional.core.IMessage; + +public class AssociationOverrideJoinTableValidator extends AbstractJoinTableValidator +{ + private final AssociationOverride override; + + public AssociationOverrideJoinTableValidator( + AssociationOverride override, + JoinTable table, + TableTextRangeResolver textRangeResolver) { + super(table, textRangeResolver); + this.override = override; + } + + public AssociationOverrideJoinTableValidator( + PersistentAttribute persistentAttribute, + AssociationOverride override, + JoinTable table, + TableTextRangeResolver textRangeResolver) { + super(persistentAttribute, table, textRangeResolver); + this.override = override; + } + + @Override + protected IMessage buildUnresolvedNameMessage() { + if (this.override.isVirtual()) { + return this.buildVirtualOverrideUnresolvedNameMessage(); + } + return super.buildUnresolvedNameMessage(); + } + + protected IMessage buildVirtualOverrideUnresolvedNameMessage() { + return DefaultJpaValidationMessages.buildMessage( + IMessage.HIGH_SEVERITY, + JpaValidationMessages.VIRTUAL_ASSOCIATION_OVERRIDE_JOIN_TABLE_UNRESOLVED_NAME, + new String[] {this.override.getName(), this.getTable().getName()}, + this.getTable(), + this.getTextRangeResolver().getNameTextRange() + ); + } + + @Override + protected IMessage buildUnresolvedCatalogMessage() { + if (this.override.isVirtual()) { + return this.buildVirtualOverrideUnresolvedCatalogMessage(); + } + return super.buildUnresolvedCatalogMessage(); + } + + protected IMessage buildVirtualOverrideUnresolvedCatalogMessage() { + return DefaultJpaValidationMessages.buildMessage( + IMessage.HIGH_SEVERITY, + JpaValidationMessages.VIRTUAL_ASSOCIATION_OVERRIDE_JOIN_TABLE_UNRESOLVED_CATALOG, + new String[] {this.override.getName(), this.getTable().getCatalog()}, + this.getTable(), + this.getTextRangeResolver().getCatalogTextRange() + ); + } + + @Override + protected IMessage buildUnresolvedSchemaMessage() { + if (this.override.isVirtual()) { + return this.buildVirtualOverrideUnresolvedSchemaMessage(); + } + return super.buildUnresolvedSchemaMessage(); + } + + protected IMessage buildVirtualOverrideUnresolvedSchemaMessage() { + return DefaultJpaValidationMessages.buildMessage( + IMessage.HIGH_SEVERITY, + JpaValidationMessages.VIRTUAL_ASSOCIATION_OVERRIDE_JOIN_TABLE_UNRESOLVED_SCHEMA, + new String[] {this.override.getName(), this.getTable().getSchema()}, + this.getTable(), + this.getTextRangeResolver().getSchemaTextRange() + ); + } + + @Override + protected IMessage buildVirtualAttributeUnresolvedNameMessage() { + throw new UnsupportedOperationException("Nested relationship mappings with JoinTable are unsupported"); //$NON-NLS-1$ + } + + @Override + protected IMessage buildVirtualAttributeUnresolvedCatalogMessage() { + throw new UnsupportedOperationException("Nested relationship mappings with JoinTable are unsupported"); //$NON-NLS-1$ + } + + @Override + protected IMessage buildVirtualAttributeUnresolvedSchemaMessage() { + throw new UnsupportedOperationException("Nested relationship mappings with JoinTable are unsupported"); //$NON-NLS-1$ + } + + @Override + protected String getVirtualAttributeUnresolvedCatalogMessage() { + throw new UnsupportedOperationException("Nested relationship mappings with JoinTable are unsupported"); //$NON-NLS-1$ + } + + @Override + protected String getVirtualAttributeUnresolvedSchemaMessage() { + throw new UnsupportedOperationException("Nested relationship mappings with JoinTable are unsupported"); //$NON-NLS-1$ + } + + @Override + protected String getVirtualAttributeUnresolvedNameMessage() { + throw new UnsupportedOperationException("Nested relationship mappings with JoinTable are unsupported"); //$NON-NLS-1$ + } +} |