Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/SecondaryTablePrimaryKeyJoinColumnValidator.java')
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/SecondaryTablePrimaryKeyJoinColumnValidator.java112
1 files changed, 112 insertions, 0 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/SecondaryTablePrimaryKeyJoinColumnValidator.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/SecondaryTablePrimaryKeyJoinColumnValidator.java
new file mode 100644
index 0000000000..f6f9f78e32
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/SecondaryTablePrimaryKeyJoinColumnValidator.java
@@ -0,0 +1,112 @@
+/*******************************************************************************
+ * 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.BaseJoinColumn;
+import org.eclipse.jpt.core.context.SecondaryTable;
+import org.eclipse.jpt.core.internal.context.BaseJoinColumnTextRangeResolver;
+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 SecondaryTablePrimaryKeyJoinColumnValidator extends PrimaryKeyJoinColumnValidator
+{
+ private final SecondaryTable secondaryTable;
+
+ public SecondaryTablePrimaryKeyJoinColumnValidator(
+ SecondaryTable secondaryTable,
+ BaseJoinColumn column,
+ BaseJoinColumn.Owner owner,
+ BaseJoinColumnTextRangeResolver textRangeResolver) {
+ super(column, owner, textRangeResolver);
+ this.secondaryTable = secondaryTable;
+ }
+
+ protected boolean isSecondaryTableVirtual() {
+ return this.secondaryTable.isVirtual();
+ }
+
+ protected String getSecondaryTableName() {
+ return this.secondaryTable.getName();
+ }
+
+ @Override
+ public IMessage buildUnresolvedNameMessage() {
+ if (isSecondaryTableVirtual()) {
+ return this.buildVirtualSecondaryTableUnresolvedNameMessage();
+ }
+ return super.buildUnresolvedNameMessage();
+ }
+
+ protected IMessage buildVirtualSecondaryTableUnresolvedNameMessage() {
+ return DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.VIRTUAL_SECONDARY_TABLE_PRIMARY_KEY_JOIN_COLUMN_UNRESOLVED_NAME,
+ new String[] {this.getSecondaryTableName(), getColumn().getName(), getColumn().getDbTable().getName()},
+ getColumn(),
+ getTextRangeResolver().getNameTextRange()
+ );
+ }
+
+ @Override
+ public IMessage buildUnresolvedReferencedColumnNameMessage() {
+ if (isSecondaryTableVirtual()) {
+ return this.buildVirtualSecondaryTableUnresolvedReferencedColumnNameMessage();
+ }
+ return super.buildUnresolvedReferencedColumnNameMessage();
+ }
+
+ protected IMessage buildVirtualSecondaryTableUnresolvedReferencedColumnNameMessage() {
+ return DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.VIRTUAL_SECONDARY_TABLE_PRIMARY_KEY_JOIN_COLUMN_UNRESOLVED_REFERENCED_COLUMN_NAME,
+ new String[] {this.getSecondaryTableName(), getColumn().getName(), getColumn().getDbTable().getName()},
+ getColumn(),
+ getTextRangeResolver().getReferencedColumnNameTextRange()
+ );
+ }
+
+ @Override
+ public IMessage buildUnspecifiedNameMultipleJoinColumnsMessage() {
+ if (this.isSecondaryTableVirtual()) {
+ return this.buildVirtualSecondaryTableUnspecifiedNameMultipleJoinColumnsMessage();
+ }
+ return super.buildUnspecifiedNameMultipleJoinColumnsMessage();
+ }
+
+ protected IMessage buildVirtualSecondaryTableUnspecifiedNameMultipleJoinColumnsMessage() {
+ return DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.VIRTUAL_SECONDARY_TABLE_PRIMARY_KEY_JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS,
+ new String[] {this.getSecondaryTableName()},
+ getColumn(),
+ getTextRangeResolver().getNameTextRange()
+ );
+ }
+
+ @Override
+ public IMessage buildUnspecifiedReferencedColumnNameMultipleJoinColumnsMessage() {
+ if (this.isSecondaryTableVirtual()) {
+ return this.buildVirtualSecondaryTableUnspecifiedReferencedColumnNameMultipleJoinColumnsMessage();
+ }
+ return super.buildUnspecifiedReferencedColumnNameMultipleJoinColumnsMessage();
+ }
+
+ protected IMessage buildVirtualSecondaryTableUnspecifiedReferencedColumnNameMultipleJoinColumnsMessage() {
+ return DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.VIRTUAL_SECONDARY_TABLE_PRIMARY_KEY_JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS,
+ new String[] {this.getSecondaryTableName()},
+ getColumn(),
+ getTextRangeResolver().getReferencedColumnNameTextRange()
+ );
+ }
+}

Back to the top