package org.insightech.er.editor.model.dbexport.ddl.validator.rule.table.impl;
import org.eclipse.core.resources.IMarker;
import org.insightech.er.ResourceString;
import org.insightech.er.editor.model.dbexport.ddl.validator.ValidateResult;
import org.insightech.er.editor.model.dbexport.ddl.validator.rule.table.TableRule;
import org.insightech.er.editor.model.diagram_contents.element.node.table.ERTable;
import org.insightech.er.editor.model.diagram_contents.element.node.table.column.NormalColumn;
import org.insightech.er.editor.model.diagram_contents.element.node.table.index.Index;
public class FullTextIndexRule extends TableRule {
/**
* {@inheritDoc}
*/
@Override
public boolean validate(ERTable table) {
for (Index index : table.getIndexes()) {
if (index.isFullText()) {
for (NormalColumn indexColumn : index.getColumns()) {
if (!indexColumn.isFullTextIndexable()) {
ValidateResult validateResult = new ValidateResult();
validateResult
.setMessage(ResourceString
.getResourceString("error.validate.fulltext.index1")
+ table.getPhysicalName()
+ ResourceString
.getResourceString("error.validate.fulltext.index2")
+ index.getName()
+ ResourceString
.getResourceString("error.validate.fulltext.index3")
+ indexColumn.getPhysicalName());
validateResult.setLocation(table.getLogicalName());
validateResult.setSeverity(IMarker.SEVERITY_WARNING);
validateResult.setObject(index);
this.addError(validateResult);
}
}
}
}
return true;
}
}