/*
* JBoss, Home of Professional Open Source.
*
* See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing.
*
* See the AUTHORS.txt file distributed with this work for a full listing of individual contributors.
*/
package org.teiid.designer.core.refactor;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.emf.ecore.resource.Resource;
import org.teiid.designer.core.ModelerCore;
import org.teiid.designer.core.types.DatatypeConstants;
import org.teiid.designer.metamodels.core.CoreFactory;
/**
* OrganizeImportCommand
*
* @since 8.0
*/
public abstract class OrganizeImportCommandHelper{
protected static final String SDTI_URI = DatatypeConstants.BUILTIN_DATATYPES_URI;
protected static final String PLUGINID = ModelerCore.PLUGIN_ID;
public static final int CAN_EXECUTE = 1000;
public static final int ERROR_MISSING_RESOURCE = 1001;
public static final int ERROR_ORGANIZING_IMPORTS = 1002;
public static final int UNKNOWN_ERROR_ORGANIZING_IMPORTS = 1003;
public static final int EXECUTE_WITH_NO_PROBLEMS = 1004;
public static final int EXECUTE_WITH_WARNINGS = 1005;
public static final int EXECUTE_WITH_ERRORS = 1006;
public static final int EXECUTE_WITH_WARNINGS_AND_ERRORS = 1007;
public static final int EXECUTE_WITH_NO_WARNINGS_AND_ERRORS = 1008;
public static final int UNKNOWN_ERROR_BUILDING_IMPORT = 1009;
public static final int ERROR_GETTING_RESOURCE = 1010;
protected static final String PID = ModelerCore.PLUGIN_ID;
protected OrganizeImportHandler handler;
protected List modelImports;
private Resource resource;
private CoreFactory factory;
private final Object factoryLock = new Object();
private OrganizeImportCommandFinderHelper finderHelper;
/**
* Exclude diagram entities from the EObjects that are visited by default
* DiagramEntities Seldom have external references except in case of CustonDiagrams
*/
protected boolean includeDiagramReferences = false;
protected OrganizeImportCommandHelper() {
modelImports = new ArrayList();
finderHelper = new OrganizeImportCommandFinderHelper();
}
/**
* @return Returns the includeDiagramReferences.
* @since 4.2
*/
protected boolean isIncludeDiagramReferences() {
return this.includeDiagramReferences;
}
/**
* @param includeDiagramReferences The includeDiagramReferences to set.
* @since 4.2
*/
protected void setIncludeDiagramReferences(boolean includeDiagramReferences) {
this.includeDiagramReferences = includeDiagramReferences;
}
/**
*
* @return OrganizeImportCommandFinderHelper
* @since 4.3
*/
protected OrganizeImportCommandFinderHelper getHelper() {
return finderHelper;
}
/**
*
* @param resource
* @since 4.3
*/
protected void setResource(final Resource resource) {
this.resource = resource;
finderHelper.setResource(resource);
}
/**
*
* @return Resource
* @since 4.3
*/
protected Resource getResource() {
return resource;
}
/**
*
* @param handler
* @since 4.3
*/
protected void setHandler( final OrganizeImportHandler handler ) {
this.handler = handler;
}
/**
*
* @return OrganizeImportHandler
* @since 4.3
*/
protected OrganizeImportHandler getHandler() {
return this.handler;
}
/**
*
* @param factory
* @since 4.3
*/
protected void setFactory(final CoreFactory factory) {
this.factory = factory;
}
/**
*
* @return CoreFactory
* @since 4.3
*/
protected CoreFactory getFactory() {
if ( this.factory == null ) {
synchronized(this.factoryLock) {
if ( this.factory == null ) {
this.factory = CoreFactory.eINSTANCE;
}
}
}
return this.factory;
}
/**
* @return List
*/
protected List getModelImports() {
return modelImports;
}
/**
*
* @param paths
* @since 4.3
*/
protected void setRefactoredPaths(Collection<PathPair> pathPairs) {
finderHelper.setRefactoredPaths(pathPairs);
}
/**
*
* @param monitor
* @return IStatus
* @since 4.3
*/
abstract protected IStatus execute( IProgressMonitor monitor);
}