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.metamodels.core.extension.XPackage;
/**
* @since 8.0
*/
public class DeletedXmlRelationalExtensionRule implements ResourceValidationRule {
@Override
public void validate(Resource resource, ValidationContext context) {
CoreArgCheck.isNotNull(resource);
CoreArgCheck.isNotNull(context);
if (ModelUtil.isModelFile(resource)) {
List contents = resource.getContents();
for (final Iterator objIter = contents.iterator(); objIter.hasNext();) {
Object obj = objIter.next();
if(obj instanceof XPackage) {
XPackage pkg = (XPackage)obj;
if(pkg.getName().equalsIgnoreCase("XMLSOAPExtension") || //$NON-NLS-1$
pkg.getName().equalsIgnoreCase("XMLHTTPExtension") || //$NON-NLS-1$
pkg.getName().equalsIgnoreCase("XMLFileExtension")) { //$NON-NLS-1$
final ValidationResult result = new ValidationResultImpl(resource, context);
final ValidationProblem problem = new ValidationProblemImpl(0,
IStatus.ERROR, ModelerCore.Util.getString("DeletedXmlRelationalExtensionRule.invalidextension")); //$NON-NLS-1$);
result.addProblem(problem);
context.addResult(result);
}
}
}
}
}
}