/** * <copyright> * </copyright> * * $Id$ */ package net.sf.orcc.df; import java.util.Collection; import java.util.List; import net.sf.orcc.graph.Vertex; import net.sf.orcc.ir.Expression; import net.sf.orcc.ir.Procedure; import net.sf.orcc.ir.Type; import net.sf.orcc.ir.Var; import net.sf.orcc.util.Attribute; import org.eclipse.emf.ecore.EFactory; import org.eclipse.emf.ecore.EObject; /** * <!-- begin-user-doc --> The <b>Factory</b> for the model. It provides a * create method for each non-abstract class of the model. <!-- end-user-doc --> * @see net.sf.orcc.df.DfPackage * @generated */ public interface DfFactory extends EFactory { /** * The singleton instance of the factory. * <!-- begin-user-doc --> <!-- * end-user-doc --> * @generated */ DfFactory eINSTANCE = net.sf.orcc.df.impl.DfFactoryImpl.init(); /** * Returns a new object of class '<em>Action</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @return a new object of class '<em>Action</em>'. * @generated */ Action createAction(); /** * Creates a new action. * * @param tag * action tag name * @param inputPattern * input pattern * @param outputPattern * output pattern * @param peekedPattern * peeked pattern * @param scheduler * procedure that computes scheduling information * @param body * procedure that holds the body of the action */ Action createAction(String tag, Pattern inputPattern, Pattern outputPattern, Pattern peekedPattern, Procedure scheduler, Procedure body); /** * Creates a new action with empty patterns, scheduler and body, and the * given tag. * * @param lineNumber * the line number * @param tag * action tag */ Action createAction(int lineNumber, String tag); /** * Creates a new action. * * @param tag * action tag name * @param inputPattern * input pattern * @param outputPattern * output pattern * @param peekedPattern * peeked pattern * @param scheduler * procedure that computes scheduling information * @param body * procedure that holds the body of the action */ Action createAction(Tag tagName, Pattern inputPattern, Pattern outputPattern, Pattern peekedPattern, Procedure scheduler, Procedure body); /** * Returns a new object of class '<em>Actor</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @return a new object of class '<em>Actor</em>'. * @generated */ Actor createActor(); /** * Returns a new object of class '<em>Argument</em>'. * <!-- begin-user-doc * --> <!-- end-user-doc --> * @return a new object of class '<em>Argument</em>'. * @generated */ Argument createArgument(); Argument createArgument(Var variable, Expression value); /** * Returns a new object of class '<em>Connection</em>'. * <!-- begin-user-doc * --> <!-- end-user-doc --> * @return a new object of class '<em>Connection</em>'. * @generated */ Connection createConnection(); /** * Creates a connection from source (and source port) to target (and target * port). * * @param source * source vertex * @param sourcePort * source port * @param target * target vertex * @param targetPort * target port */ Connection createConnection(Vertex source, Port sourcePort, Vertex target, Port targetPort); /** * Creates a connection from source (and source port) to target (and target * port)with the given attributes. Attributes are copied. * * @param source * source vertex * @param sourcePort * source port * @param target * target vertex * @param targetPort * target port * @param attributes * attributes to associate with the new connection */ Connection createConnection(Vertex source, Port sourcePort, Vertex target, Port targetPort, Collection<Attribute> attributes); /** * Creates a connection from source (and source port) to target (and target * port) with the given size. This will create a connection with the * {@link #BUFFER_SIZE} attribute set to size. * * @param source * source vertex * @param sourcePort * source port * @param target * target vertex * @param targetPort * target port */ Connection createConnection(Vertex source, Port sourcePort, Vertex target, Port targetPort, Integer size); /** * Returns a new object of class '<em>FSM</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @return a new object of class '<em>FSM</em>'. * @generated */ FSM createFSM(); /** * Returns a new object of class '<em>Instance</em>'. * <!-- begin-user-doc * --> <!-- end-user-doc --> * @return a new object of class '<em>Instance</em>'. * @generated */ Instance createInstance(); /** * Returns a new object of class '<em>Entity</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @return a new object of class '<em>Entity</em>'. * @generated */ Entity createEntity(); Instance createInstance(String id, EObject entity); /** * Returns a new object of class '<em>Network</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @return a new object of class '<em>Network</em>'. * @generated */ Network createNetwork(); /** * Creates a network defined in the given file. * * @param fileName * @return a new network */ Network createNetwork(String fileName); /** * Returns a new object of class '<em>Pattern</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @return a new object of class '<em>Pattern</em>'. * @generated */ Pattern createPattern(); /** * Returns a new object of class '<em>Port</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @return a new object of class '<em>Port</em>'. * @generated */ Port createPort(); Port createPort(Port port); Port createPort(Type type, String name); Port createPort(Type type, String name, boolean native_); /** * Returns a new object of class '<em>State</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @return a new object of class '<em>State</em>'. * @generated */ State createState(); /** * Creates a state with the given name. * * @param name * name of the state * @return a state with the given name */ State createState(String name); /** * Returns a new object of class '<em>Tag</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @return a new object of class '<em>Tag</em>'. * @generated */ Tag createTag(); Tag createTag(List<String> identifiers); Tag createTag(String tagName); Tag createTag(Tag tag); /** * Returns a new object of class '<em>Transition</em>'. * <!-- begin-user-doc * --> <!-- end-user-doc --> * @return a new object of class '<em>Transition</em>'. * @generated */ Transition createTransition(); /** * Creates a new transition from <code>source</code> to <code>target</code>. * * @param source * source state * @param target * target state * @return a new transition */ Transition createTransition(State source, State target); /** * Creates a new transition from <code>source</code> to <code>target</code>, * and associates it to the given action. * * @param source * source state * @param action * an action * @param target * target state * @return a new transition */ Transition createTransition(State source, Action action, State target); /** * Returns a new object of class '<em>Unit</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @return a new object of class '<em>Unit</em>'. * @generated */ Unit createUnit(); /** * Returns the package supported by this factory. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @return the package supported by this factory. * @generated */ DfPackage getDfPackage(); } // DfFactory