/* * 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.compare.selector.ModelSelector; /** * ModelProducer * * @since 8.0 */ public interface ModelProducer { /** * Produce the model contents. Typically, implementations are supplied with all necessary information * (such as options, destinations, etc.) through implementation-specific means. * @param monitor the progress monitor; may not be null * @param problems the list into which can be placed {@link IStatus} instances denoting informational, * warning, and error messages. * @throws Exception if there is a catastrophic problem executing the production of the model */ public void execute( IProgressMonitor monitor, final List problems ) throws Exception; /** * Return the model selector into which the model contents are placed during * {@link #execute(IProgressMonitor, List) execute}. * @return the model selector; may not be null */ public ModelSelector getOutputSelector(); }