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/BaseColumnTableValidator.java')
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/BaseColumnTableValidator.java119
1 files changed, 119 insertions, 0 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/BaseColumnTableValidator.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/BaseColumnTableValidator.java
new file mode 100644
index 0000000000..bf0386f397
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/BaseColumnTableValidator.java
@@ -0,0 +1,119 @@
+/*******************************************************************************
+ * 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 java.util.List;
+import org.eclipse.jpt.core.context.BaseColumn;
+import org.eclipse.jpt.core.context.PersistentAttribute;
+import org.eclipse.jpt.core.internal.context.BaseColumnTextRangeResolver;
+import org.eclipse.jpt.core.internal.jpa1.context.AbstractNamedColumnValidator.TableValidator;
+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;
+import org.eclipse.wst.validation.internal.provisional.core.IReporter;
+
+public class BaseColumnTableValidator implements TableValidator
+{
+
+ protected final PersistentAttribute persistentAttribute;
+
+ protected final BaseColumn column;
+
+ protected final BaseColumnTextRangeResolver textRangeResolver;
+
+ protected final TableDescriptionProvider tableDescriptionProvider;
+
+ protected BaseColumnTableValidator(
+ PersistentAttribute persistentAttribute, BaseColumn column, BaseColumnTextRangeResolver textRangeResolver, TableDescriptionProvider tableDescriptionProvider) {
+ super();
+ this.persistentAttribute = persistentAttribute;
+ this.column = column;
+ this.textRangeResolver = textRangeResolver;
+ this.tableDescriptionProvider = tableDescriptionProvider;
+ }
+
+ public BaseColumn getColumn() {
+ return this.column;
+ }
+
+ public BaseColumnTextRangeResolver getTextRangeResolver() {
+ return this.textRangeResolver;
+ }
+
+ protected boolean isPersistentAttributeVirtual() {
+ return this.persistentAttribute != null && this.persistentAttribute.isVirtual();
+ }
+
+ protected String getPersistentAttributeName() {
+ return this.persistentAttribute.getName();
+ }
+
+ public boolean isTableNameInvalid() {
+ return this.getColumn().tableNameIsInvalid();
+ }
+
+ public void validate(List<IMessage> messages, IReporter reporter) {
+ messages.add(buildTableNotValidMessage());
+ }
+
+ public IMessage buildTableNotValidMessage() {
+ if (isPersistentAttributeVirtual()) {
+ return buildVirtualAttributeTableNotValidMessage();
+ }
+ return DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ this.getColumnTableNotValidMessage(),
+ new String[] {
+ getColumn().getTable(),
+ getColumn().getName(),
+ this.getColumnTableDescriptionMessage()},
+ getColumn(),
+ getTextRangeResolver().getTableTextRange()
+ );
+ }
+
+ protected String getColumnTableNotValidMessage() {
+ return JpaValidationMessages.COLUMN_TABLE_NOT_VALID;
+ }
+
+ protected String getColumnTableDescriptionMessage() {
+ return this.tableDescriptionProvider.getColumnTableDescriptionMessage();
+ }
+
+ protected IMessage buildVirtualAttributeTableNotValidMessage() {
+ return DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ this.getVirtualAttributeColumnTableNotValidMessage(),
+ new String[] {
+ getPersistentAttributeName(),
+ getColumn().getTable(),
+ getColumn().getName(),
+ this.getColumnTableDescriptionMessage()},
+ getColumn(),
+ getTextRangeResolver().getTableTextRange()
+ );
+ }
+
+ protected String getVirtualAttributeColumnTableNotValidMessage() {
+ return JpaValidationMessages.VIRTUAL_ATTRIBUTE_COLUMN_TABLE_NOT_VALID;
+ }
+
+
+ public static interface TableDescriptionProvider {
+ String getColumnTableDescriptionMessage();
+ }
+
+ public static class NullTableDescriptionProvider implements TableDescriptionProvider {
+ public String getColumnTableDescriptionMessage() {
+ throw new UnsupportedOperationException();
+ }
+ }
+}

Back to the top