/**
* <copyright>
* Copyright (c) 2010-2014 Henshin developers. All rights reserved.
* This program and the accompanying materials are 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
* </copyright>
*/
package org.eclipse.emf.henshin.model;
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EFactory;
import org.eclipse.emf.ecore.EReference;
/**
* <!-- begin-user-doc -->
* The <b>Factory</b> for the Henshin model.
* It provides a create method for each non-abstract class of the model.
* <!-- end-user-doc -->
* @see org.eclipse.emf.henshin.model.HenshinPackage
* @generated
*/
public interface HenshinFactory extends EFactory {
/**
* The singleton instance of the factory.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
HenshinFactory eINSTANCE = org.eclipse.emf.henshin.model.impl.HenshinFactoryImpl.init();
/**
* Returns a new object of class '<em>Annotation</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return a new object of class '<em>Annotation</em>'.
* @generated
*/
Annotation createAnnotation();
/**
* Returns a new object of class '<em>Module</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return a new object of class '<em>Module</em>'.
* @generated
*/
Module createModule();
/**
* Returns a new object of class '<em>Rule</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return a new object of class '<em>Rule</em>'.
* @generated
*/
Rule createRule();
/**
* Returns a new object of class '<em>Rule</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param name The name of the rule.
* @return a new object of class '<em>Rule</em>'.
* @generated NOT
*/
Rule createRule(String name);
/**
* Returns a new object of class '<em>Attribute Condition</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return a new object of class '<em>Attribute Condition</em>'.
* @generated
*/
AttributeCondition createAttributeCondition();
/**
* Returns a new object of class '<em>Parameter</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return a new object of class '<em>Parameter</em>'.
* @generated
*/
Parameter createParameter();
/**
* Returns a new object of class '<em>Parameter</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param name Name of the parameter.
* @return a new object of class '<em>Parameter</em>'.
* @generated NOT
*/
Parameter createParameter(String name);
/**
* Returns a new object of class '<em>Graph</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return a new object of class '<em>Graph</em>'.
* @generated
*/
Graph createGraph();
/**
* Returns a new object of class '<em>Graph</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param name Name of the graph.
* @return a new object of class '<em>Graph</em>'.
* @generated NOT
*/
Graph createGraph(String name);
/**
* Returns a new object of class '<em>Mapping</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return a new object of class '<em>Mapping</em>'.
* @generated
*/
Mapping createMapping();
/**
* Returns a new object of class '<em>Mapping</em>'.
* <!-- begin-user-doc -->
* Sets the origin and the image of the created mapping.
* <!-- end-user-doc -->
* @param origin Origin of the mapping.
* @param image Image of the mapping.
* @return a new object of class '<em>Mapping</em>'.
* @generated NOT
*/
Mapping createMapping(Node origin, Node image);
/**
* Returns a new object of class '<em>Node</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return a new object of class '<em>Node</em>'.
* @generated
*/
Node createNode();
/**
* Create a new node and add it to a given graph.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param graph The graph.
* @param type The type of the node.
* @param name The name of the node.
* @return a new object of class '<em>Node</em>'.
* @generated NOT
*/
Node createNode(Graph graph, EClass type, String name);
/**
* Returns a new object of class '<em>Attribute</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return a new object of class '<em>Attribute</em>'.
* @generated
*/
Attribute createAttribute();
/**
* Returns a new object of class '<em>Attribute</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param type Attribute type.
* @param value Attribute value.
* @return a new object of class '<em>Attribute</em>'.
* @generated NOT
*/
Attribute createAttribute(Node node, EAttribute type, String value);
/**
* Returns a new object of class '<em>Edge</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return a new object of class '<em>Edge</em>'.
* @generated
*/
Edge createEdge();
/**
* Creates a new edge between two nodes. The edge is automatically
* added to the graph of the source node if not <code>null</code>.
* @param source Source node.
* @param target Target node.
* @param type Edge type.
* @return The created edge.
* @generated NOT
*/
Edge createEdge(Node source, Node target, EReference type);
/**
* Returns a new object of class '<em>Independent Unit</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return a new object of class '<em>Independent Unit</em>'.
* @generated
*/
IndependentUnit createIndependentUnit();
/**
* Returns a new object of class '<em>Sequential Unit</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return a new object of class '<em>Sequential Unit</em>'.
* @generated
*/
SequentialUnit createSequentialUnit();
/**
* Returns a new object of class '<em>Conditional Unit</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return a new object of class '<em>Conditional Unit</em>'.
* @generated
*/
ConditionalUnit createConditionalUnit();
/**
* Returns a new object of class '<em>Priority Unit</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return a new object of class '<em>Priority Unit</em>'.
* @generated
*/
PriorityUnit createPriorityUnit();
/**
* Returns a new object of class '<em>Iterated Unit</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return a new object of class '<em>Iterated Unit</em>'.
* @generated
*/
IteratedUnit createIteratedUnit();
/**
* Returns a new object of class '<em>Loop Unit</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return a new object of class '<em>Loop Unit</em>'.
* @generated
*/
LoopUnit createLoopUnit();
/**
* Returns a new object of class '<em>Nested Condition</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return a new object of class '<em>Nested Condition</em>'.
* @generated
*/
NestedCondition createNestedCondition();
/**
* Returns a new object of class '<em>And</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return a new object of class '<em>And</em>'.
* @generated
*/
And createAnd();
/**
* Returns a new object of class '<em>Or</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return a new object of class '<em>Or</em>'.
* @generated
*/
Or createOr();
/**
* Returns a new object of class '<em>Not</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return a new object of class '<em>Not</em>'.
* @generated
*/
Not createNot();
/**
* Returns a new object of class '<em>Xor</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return a new object of class '<em>Xor</em>'.
* @generated
*/
Xor createXor();
/**
* Returns a new object of class '<em>Parameter Mapping</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return a new object of class '<em>Parameter Mapping</em>'.
* @generated
*/
ParameterMapping createParameterMapping();
/**
* Returns the package supported by this factory.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return the package supported by this factory.
* @generated
*/
HenshinPackage getHenshinPackage();
} //HenshinFactory