/**
*/
package org.eclipse.viatra.solver.language.model.problem;
import org.eclipse.emf.ecore.EFactory;
/**
*
* The Factory for the model.
* It provides a create method for each non-abstract class of the model.
*
* @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage
* @generated
*/
public interface ProblemFactory extends EFactory {
/**
* The singleton instance of the factory.
*
*
* @generated
*/
ProblemFactory eINSTANCE = org.eclipse.viatra.solver.language.model.problem.impl.ProblemFactoryImpl.init();
/**
* Returns a new object of class 'Problem'.
*
*
* @return a new object of class 'Problem'.
* @generated
*/
Problem createProblem();
/**
* Returns a new object of class 'Class Declaration'.
*
*
* @return a new object of class 'Class Declaration'.
* @generated
*/
ClassDeclaration createClassDeclaration();
/**
* Returns a new object of class 'Reference Declaration'.
*
*
* @return a new object of class 'Reference Declaration'.
* @generated
*/
ReferenceDeclaration createReferenceDeclaration();
/**
* Returns a new object of class 'Predicate Definition'.
*
*
* @return a new object of class 'Predicate Definition'.
* @generated
*/
PredicateDefinition createPredicateDefinition();
/**
* Returns a new object of class 'Parameter'.
*
*
* @return a new object of class 'Parameter'.
* @generated
*/
Parameter createParameter();
/**
* Returns a new object of class 'Conjunction'.
*
*
* @return a new object of class 'Conjunction'.
* @generated
*/
Conjunction createConjunction();
/**
* Returns a new object of class 'Atom'.
*
*
* @return a new object of class 'Atom'.
* @generated
*/
Atom createAtom();
/**
* Returns a new object of class 'Implicit Variable'.
*
*
* @return a new object of class 'Implicit Variable'.
* @generated
*/
ImplicitVariable createImplicitVariable();
/**
* Returns a new object of class 'Negative Literal'.
*
*
* @return a new object of class 'Negative Literal'.
* @generated
*/
NegativeLiteral createNegativeLiteral();
/**
* Returns a new object of class 'Assertion'.
*
*
* @return a new object of class 'Assertion'.
* @generated
*/
Assertion createAssertion();
/**
* Returns a new object of class 'Node'.
*
*
* @return a new object of class 'Node'.
* @generated
*/
Node createNode();
/**
* Returns a new object of class 'Scope Declaration'.
*
*
* @return a new object of class 'Scope Declaration'.
* @generated
*/
ScopeDeclaration createScopeDeclaration();
/**
* Returns a new object of class 'Type Scope'.
*
*
* @return a new object of class 'Type Scope'.
* @generated
*/
TypeScope createTypeScope();
/**
* Returns a new object of class 'Range Multiplicity'.
*
*
* @return a new object of class 'Range Multiplicity'.
* @generated
*/
RangeMultiplicity createRangeMultiplicity();
/**
* Returns a new object of class 'Exact Multiplicity'.
*
*
* @return a new object of class 'Exact Multiplicity'.
* @generated
*/
ExactMultiplicity createExactMultiplicity();
/**
* Returns a new object of class 'Unbounded Multiplicity'.
*
*
* @return a new object of class 'Unbounded Multiplicity'.
* @generated
*/
UnboundedMultiplicity createUnboundedMultiplicity();
/**
* Returns a new object of class 'Argument'.
*
*
* @return a new object of class 'Argument'.
* @generated
*/
Argument createArgument();
/**
* Returns the package supported by this factory.
*
*
* @return the package supported by this factory.
* @generated
*/
ProblemPackage getProblemPackage();
} //ProblemFactory