/**
 */
package org.etsi.mts.tdl.structuredobjectives;

import org.eclipse.emf.ecore.EFactory;

/**
 * <!-- 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 org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage
 * @generated
 */
public interface StructuredObjectivesFactory extends EFactory
{
	/**
	 * The singleton instance of the factory.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	StructuredObjectivesFactory eINSTANCE = org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesFactoryImpl.init();

	/**
	 * Returns a new object of class '<em>Element</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>Element</em>'.
	 * @generated
	 */
	Element createElement();

	/**
	 * Returns a new object of class '<em>Structured Test Objective</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>Structured Test Objective</em>'.
	 * @generated
	 */
	StructuredTestObjective createStructuredTestObjective();

	/**
	 * Returns a new object of class '<em>Initial Conditions</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>Initial Conditions</em>'.
	 * @generated
	 */
	InitialConditions createInitialConditions();

	/**
	 * Returns a new object of class '<em>Event Sequence</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>Event Sequence</em>'.
	 * @generated
	 */
	EventSequence createEventSequence();

	/**
	 * Returns a new object of class '<em>Event Occurrence</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>Event Occurrence</em>'.
	 * @generated
	 */
	EventOccurrence createEventOccurrence();

	/**
	 * Returns a new object of class '<em>Expected Behaviour</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>Expected Behaviour</em>'.
	 * @generated
	 */
	ExpectedBehaviour createExpectedBehaviour();

	/**
	 * Returns a new object of class '<em>Final Conditions</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>Final Conditions</em>'.
	 * @generated
	 */
	FinalConditions createFinalConditions();

	/**
	 * Returns a new object of class '<em>PICS Reference</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>PICS Reference</em>'.
	 * @generated
	 */
	PICSReference createPICSReference();

	/**
	 * Returns a new object of class '<em>PICS</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>PICS</em>'.
	 * @generated
	 */
	PICS createPICS();

	/**
	 * 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();

	/**
	 * Returns a new object of class '<em>Event</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>Event</em>'.
	 * @generated
	 */
	Event createEvent();

	/**
	 * Returns a new object of class '<em>Event Occurrence Specification</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>Event Occurrence Specification</em>'.
	 * @generated
	 */
	EventOccurrenceSpecification createEventOccurrenceSpecification();

	/**
	 * Returns a new object of class '<em>Entity Reference</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>Entity Reference</em>'.
	 * @generated
	 */
	EntityReference createEntityReference();

	/**
	 * Returns a new object of class '<em>Event Reference</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>Event Reference</em>'.
	 * @generated
	 */
	EventReference createEventReference();

	/**
	 * Returns a new object of class '<em>Event Argument</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>Event Argument</em>'.
	 * @generated
	 */
	EventArgument createEventArgument();

	/**
	 * Returns a new object of class '<em>Data Reference</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>Data Reference</em>'.
	 * @generated
	 */
	DataReference createDataReference();

	/**
	 * Returns a new object of class '<em>Content</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>Content</em>'.
	 * @generated
	 */
	Content createContent();

	/**
	 * Returns a new object of class '<em>Literal Value</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>Literal Value</em>'.
	 * @generated
	 */
	LiteralValue createLiteralValue();

	/**
	 * Returns a new object of class '<em>Content Reference</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>Content Reference</em>'.
	 * @generated
	 */
	ContentReference createContentReference();

	/**
	 * Returns a new object of class '<em>Literal Value Reference</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>Literal Value Reference</em>'.
	 * @generated
	 */
	LiteralValueReference createLiteralValueReference();

	/**
	 * Returns a new object of class '<em>Repeated Event Sequence</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>Repeated Event Sequence</em>'.
	 * @generated
	 */
	RepeatedEventSequence createRepeatedEventSequence();

	/**
	 * Returns a new object of class '<em>Event Template Occurrence</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>Event Template Occurrence</em>'.
	 * @generated
	 */
	EventTemplateOccurrence createEventTemplateOccurrence();

	/**
	 * Returns a new object of class '<em>Event Specification Template</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>Event Specification Template</em>'.
	 * @generated
	 */
	EventSpecificationTemplate createEventSpecificationTemplate();

	/**
	 * Returns a new object of class '<em>Entity Binding</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>Entity Binding</em>'.
	 * @generated
	 */
	EntityBinding createEntityBinding();

	/**
	 * Returns a new object of class '<em>Variants</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>Variants</em>'.
	 * @generated
	 */
	Variants createVariants();

	/**
	 * Returns a new object of class '<em>Test Objective Variant</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>Test Objective Variant</em>'.
	 * @generated
	 */
	TestObjectiveVariant createTestObjectiveVariant();

	/**
	 * Returns a new object of class '<em>Variant Binding</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>Variant Binding</em>'.
	 * @generated
	 */
	VariantBinding createVariantBinding();

	/**
	 * Returns the package supported by this factory.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the package supported by this factory.
	 * @generated
	 */
	StructuredObjectivesPackage getStructuredObjectivesPackage();

} //StructuredObjectivesFactory
