/* * 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 org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; /** * MergeProcessor * * @since 8.0 */ public interface MergeProcessor { /** * Perform the merge, 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 ); /** * Optional method that is used when multiple MergeProcessors are used together (in sequence) to work * on multiple models (see {@link org.teiid.designer.compare.generator.CompositeModelGenerator}). * When such models have references between them, the merge processor may have to reresolve some references * (e.g., after another MergeProcessor has merged some models that are referenced by this processor's model). * @param monitor * @since 4.2 */ public void reresolve( IProgressMonitor monitor); /** * Close this processor and release any resources that have been acquired. * Once closed, the processor may not be used again. */ public void close(); }