blob: 7ea6f269f3fc2027e16e3f5e59077ff93f0e836f [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2011, 2012 Red Hat, Inc.
* All rights reserved.
* This program is made available under the terms of the
* Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Red Hat, Inc. - initial API and implementation
*******************************************************************************/
package org.eclipse.bpmn2.modeler.core.features;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.graphiti.IExecutionInfo;
import org.eclipse.graphiti.features.context.IContext;
// TODO: Auto-generated Javadoc
/**
* The Interface IBpmn2CreateFeature.
*
* @param <T> the generic type
* @param <C> the generic type
*/
public interface IBpmn2CreateFeature<T extends EObject, C extends IContext> {
/**
* Creates the business object.
*
* @param context the context
* @return the t
*/
public T createBusinessObject(C context);
/**
* Gets the business object.
*
* @param context the context
* @return the business object
*/
public T getBusinessObject(C context);
/**
* Set the business object into the Graphiti context.
*
* @param context the Graphiti context
* @param businessObject the business object
*/
public void putBusinessObject(C context, T businessObject);
/**
* Gets the business object class. This is the BPMN2 model object EClass.
*
* @return the business object class
*/
public EClass getBusinessObjectClass();
/**
* Gets the BPMN2 model object class that the Feature Provider uses to map
* Feature Containers. This is usually the same as the Business Object class
* (except for example {@see CallGlobalTaskFeatureContainer}).
*
* @return the business object class
*/
public EClass getFeatureClass();
/**
* Post execute.
*
* @param executionInfo the execution info
*/
public void postExecute(IExecutionInfo executionInfo);
}