package org.teiid.designer.core.metamodel.aspect.core.aspects.validation.rules;
import java.util.Iterator;
import java.util.List;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.emf.ecore.resource.Resource;
import org.teiid.core.designer.util.CoreArgCheck;
import org.teiid.designer.core.ModelerCore;
import org.teiid.designer.core.validation.ResourceValidationRule;
import org.teiid.designer.core.validation.ValidationContext;
import org.teiid.designer.core.validation.ValidationProblem;
import org.teiid.designer.core.validation.ValidationProblemImpl;
import org.teiid.designer.core.validation.ValidationResult;
import org.teiid.designer.core.validation.ValidationResultImpl;
import org.teiid.designer.core.workspace.ModelUtil;
import org.teiid.designer.core.workspace.ModelWorkspaceException;
import org.teiid.designer.metamodels.core.ModelImport;
/**
* @since 8.0
*/
public class DeletedXmlRelationalImportRule implements ResourceValidationRule {
@Override
public void validate(Resource resource, ValidationContext context) {
CoreArgCheck.isNotNull(resource);
CoreArgCheck.isNotNull(context);
if (ModelUtil.isModelFile(resource)) {
try {
if (ModelUtil.isPhysical(resource)) {
final List imports = ModelUtil.getModel(resource).getModelImports();
for (final Iterator impIter = imports.iterator(); impIter
.hasNext();) {
final ModelImport imp = (ModelImport) impIter.next();
if (imp.getName().equalsIgnoreCase("XMLFileConnectorExtensions") //$NON-NLS-1$
|| imp.getName().equalsIgnoreCase(
"XMLHttpConnectorExtensions") //$NON-NLS-1$
|| imp.getName().equalsIgnoreCase("XMLSOAPConnectorExtensions")) { //$NON-NLS-1$
final ValidationResult result = new ValidationResultImpl(resource, context);
final ValidationProblem problem = new ValidationProblemImpl(0,
IStatus.ERROR, ModelerCore.Util.getString("DeletedXmlRelationalRule.invalidmodel", new Object[]{imp.getName()})); //$NON-NLS-1$);
result.addProblem(problem);
context.addResult(result);
}
}
}
} catch (ModelWorkspaceException e) {
ValidationResult result = new ValidationResultImpl(resource, resource);
ValidationProblem problem = new ValidationProblemImpl(IStatus.OK, IStatus.ERROR, e.getLocalizedMessage());
result.addProblem(problem);
context.addResult(result);
}
}
}
}