/*
* 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.compare;
import java.util.List;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.teiid.designer.core.compare.EObjectMatcherFactory;
/**
* DifferenceProcessor
*
* @since 8.0
*/
public interface DifferenceProcessor {
/**
* Return the list of {@link EObjectMatcherFactory} instances that will be used by this processor
* during {@link #execute(IProgressMonitor) execution}.
* @return the mapping adapters; never null
* @see #addEObjectMatcherFactories(List)
*/
public List getEObjectMatcherFactories();
/**
* Helper method to add to the list of {@link EObjectMatcherFactory} instances that will be used
* by this processor during {@link #execute(IProgressMonitor) execution}.
* @param adapters the new mapping adapters; may not be null
* @see #getEObjectMatcherFactories()
*/
public void addEObjectMatcherFactories( List adapters );
/**
* Return the difference guidelines that are used.
* @return the difference guidelines; may be null
*/
public DifferenceGuidelines getDifferenceGuidelines();
/**
* Set the difference guidelines that are used.
* @param guidelines the difference guidelines; may be null
*/
public void setDifferenceGuidelines( DifferenceGuidelines guidelines );
/**
* Perform the difference analysis, and return the status denoting whether the
* execution was successful.
* @param monitor the progress monitor; may be null
* @return the status of the execution that contains any errors or warnings that were encountered
* during the execution
*/
public IStatus execute( IProgressMonitor monitor );
/**
* Obtain the difference report.
* @return the DifferenceReport; may be null if {@link #execute(IProgressMonitor)} has not yet
* been called
*/
public DifferenceReport getDifferenceReport();
/**
* Close this processor and release any resources that have been acquired.
* Once closed, the processor may not be used again.
*/
public void close();
}