All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.eclipse.ocl.utilities.OCLFactory Maven / Gradle / Ivy

/**
 * 
 *
 * Copyright (c) 2006, 2007 IBM Corporation and others.
 * 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
 *
 * Contributors:
 *   IBM - Initial API and implementation
 *
 * 
 *
 * $Id: OCLFactory.java,v 1.2 2007/05/17 17:06:22 cdamus Exp $
 */

package org.eclipse.ocl.utilities;

import java.util.List;

import org.eclipse.ocl.expressions.AssociationClassCallExp;
import org.eclipse.ocl.expressions.BooleanLiteralExp;
import org.eclipse.ocl.expressions.CollectionItem;
import org.eclipse.ocl.expressions.CollectionKind;
import org.eclipse.ocl.expressions.CollectionLiteralExp;
import org.eclipse.ocl.expressions.CollectionRange;
import org.eclipse.ocl.expressions.EnumLiteralExp;
import org.eclipse.ocl.expressions.IfExp;
import org.eclipse.ocl.expressions.IntegerLiteralExp;
import org.eclipse.ocl.expressions.InvalidLiteralExp;
import org.eclipse.ocl.expressions.IterateExp;
import org.eclipse.ocl.expressions.IteratorExp;
import org.eclipse.ocl.expressions.LetExp;
import org.eclipse.ocl.expressions.MessageExp;
import org.eclipse.ocl.expressions.NullLiteralExp;
import org.eclipse.ocl.expressions.OperationCallExp;
import org.eclipse.ocl.expressions.PropertyCallExp;
import org.eclipse.ocl.expressions.RealLiteralExp;
import org.eclipse.ocl.expressions.StateExp;
import org.eclipse.ocl.expressions.StringLiteralExp;
import org.eclipse.ocl.expressions.TupleLiteralExp;
import org.eclipse.ocl.expressions.TupleLiteralPart;
import org.eclipse.ocl.expressions.TypeExp;
import org.eclipse.ocl.expressions.UnlimitedNaturalLiteralExp;
import org.eclipse.ocl.expressions.UnspecifiedValueExp;
import org.eclipse.ocl.expressions.Variable;
import org.eclipse.ocl.expressions.VariableExp;
import org.eclipse.ocl.types.BagType;
import org.eclipse.ocl.types.CollectionType;
import org.eclipse.ocl.types.MessageType;
import org.eclipse.ocl.types.OrderedSetType;
import org.eclipse.ocl.types.SequenceType;
import org.eclipse.ocl.types.SetType;
import org.eclipse.ocl.types.TupleType;
import org.eclipse.ocl.types.TypeType;

/**
 * Interface for a factory of OCl Abstract Syntax elements.
 * 
 * @author Christian W. Damus (cdamus
 */
public interface OCLFactory {

	/**
	 * Returns a new object of class 'Bag Type'.
	 * 
	 * 
	 * @return a new object of class 'Bag Type'.
	 * @generated NOT
	 */
	 BagType createBagType(C elementType);

	/**
	 * Returns a new object of class 'Collection Type'.
	 * 
	 * 
	 * @return a new object of class 'Collection Type'.
	 * @generated NOT
	 */
	 CollectionType createCollectionType(C elementType);

	/**
	 * Returns a new object of class 'Collection Type'.
	 * 
	 * 
	 * @return a new object of class 'Collection Type'.
	 * @generated NOT
	 */
	 CollectionType	createCollectionType(CollectionKind kind, C elementType);

	/**
	 * Returns a new object of class 'Ordered Set Type'.
	 * 
	 * 
	 * @return a new object of class 'Ordered Set Type'.
	 * @generated NOT
	 */
	 OrderedSetType createOrderedSetType(C elementType);

	/**
	 * Returns a new object of class 'Sequence Type'.
	 * 
	 * 
	 * @return a new object of class 'Sequence Type'.
	 * @generated NOT
	 */
	 SequenceType createSequenceType(C elementType);

	/**
	 * Returns a new object of class 'Set Type'.
	 * 
	 * 
	 * @return a new object of class 'Set Type'.
	 * @generated NOT
	 */
	 SetType createSetType(C elementType);

	/**
	 * Creates the type for the messages representing invocation of the
	 * specified signal.
	 * 
	 * @param signal either a sent signal
	 * 
	 * @return the message type
	 * @generated NOT
	 */
	 MessageType createSignalMessageType(C signal);

	/**
	 * Creates the type for the messages representing invocation of the
	 * specified operation.
	 * 
	 * @param operation a called operation
	 * 
	 * @return the message type
	 * @generated NOT
	 */
	 MessageType createOperationMessageType(O operation);

	/**
	 * Creates a tuple type based on tthe specified part descriptions.
	 * 
	 * @param parts a list of {@link TypedElement}s describing the tuple parts
	 * 
	 * @return the new tuple type
	 * @generated NOT
	 */
	 TupleType createTupleType(List> parts);

	/**
	 * Returns a new object of class 'Type Type'.
	 * 
	 * 
	 * @return a new object of class 'Type Type'.
	 * @generated NOT
	 */
	 TypeType createTypeType(C type);

	/**
	 * Returns a new object of class 'Association Class Call Exp'.
	 * 
	 * 
	 * @return a new object of class 'Association Class Call Exp'.
	 * @generated
	 */
	 AssociationClassCallExp createAssociationClassCallExp();

	/**
	 * Returns a new object of class 'Boolean Literal Exp'.
	 * 
	 * 
	 * @return a new object of class 'Boolean Literal Exp'.
	 * @generated
	 */
	 BooleanLiteralExp createBooleanLiteralExp();

	/**
	 * Returns a new object of class 'Collection Item'.
	 * 
	 * 
	 * @return a new object of class 'Collection Item'.
	 * @generated
	 */
	 CollectionItem createCollectionItem();

	/**
	 * Returns a new object of class 'Collection Literal Exp'.
	 * 
	 * 
	 * @return a new object of class 'Collection Literal Exp'.
	 * @generated
	 */
	 CollectionLiteralExp createCollectionLiteralExp();

	/**
	 * Returns a new object of class 'Collection Range'.
	 * 
	 * 
	 * @return a new object of class 'Collection Range'.
	 * @generated
	 */
	 CollectionRange createCollectionRange();

	/**
	 * Returns a new object of class 'Enum Literal Exp'.
	 * 
	 * 
	 * @return a new object of class 'Enum Literal Exp'.
	 * @generated
	 */
	 EnumLiteralExp createEnumLiteralExp();

	/**
	 * Returns a new object of class 'If Exp'.
	 * 
	 * 
	 * @return a new object of class 'If Exp'.
	 * @generated
	 */
	 IfExp createIfExp();

	/**
	 * Returns a new object of class 'Integer Literal Exp'.
	 * 
	 * 
	 * @return a new object of class 'Integer Literal Exp'.
	 * @generated
	 */
	 IntegerLiteralExp createIntegerLiteralExp();

	/**
	 * Returns a new object of class 'Unlimited Natural Literal Exp'.
	 * 
     * 
	 * @return a new object of class 'Unlimited Natural Literal Exp'.
	 * @generated
	 */
     UnlimitedNaturalLiteralExp createUnlimitedNaturalLiteralExp();

    /**
	 * Returns a new object of class 'Invalid Literal Exp'.
	 * 
	 * 
	 * @return a new object of class 'Invalid Literal Exp'.
	 * @generated
	 */
	 InvalidLiteralExp createInvalidLiteralExp();

	/**
	 * Returns a new object of class 'Iterate Exp'.
	 * 
	 * 
	 * @return a new object of class 'Iterate Exp'.
	 * @generated
	 */
	 IterateExp createIterateExp();

	/**
	 * Returns a new object of class 'Iterator Exp'.
	 * 
	 * 
	 * @return a new object of class 'Iterator Exp'.
	 * @generated
	 */
	 IteratorExp createIteratorExp();

	/**
	 * Returns a new object of class 'Let Exp'.
	 * 
	 * 
	 * @return a new object of class 'Let Exp'.
	 * @generated
	 */
	 LetExp createLetExp();

	/**
	 * Returns a new object of class 'Message Exp'.
	 * 
	 * 
	 * @return a new object of class 'Message Exp'.
	 * @generated
	 */
	 MessageExp createMessageExp();

	/**
	 * Returns a new object of class 'Null Literal Exp'.
	 * 
	 * 
	 * @return a new object of class 'Null Literal Exp'.
	 * @generated
	 */
	 NullLiteralExp createNullLiteralExp();

	/**
	 * Returns a new object of class 'Operation Call Exp'.
	 * 
	 * 
	 * @return a new object of class 'Operation Call Exp'.
	 * @generated
	 */
	 OperationCallExp createOperationCallExp();

	/**
	 * Returns a new object of class 'Property Call Exp'.
	 * 
	 * 
	 * @return a new object of class 'Property Call Exp'.
	 * @generated
	 */
	 PropertyCallExp createPropertyCallExp();

	/**
	 * Returns a new object of class 'Real Literal Exp'.
	 * 
	 * 
	 * @return a new object of class 'Real Literal Exp'.
	 * @generated
	 */
	 RealLiteralExp createRealLiteralExp();

	/**
	 * Returns a new object of class 'State Exp'.
	 * 
	 * 
	 * @return a new object of class 'State Exp'.
	 * @generated
	 */
	 StateExp createStateExp();

	/**
	 * Returns a new object of class 'String Literal Exp'.
	 * 
	 * 
	 * @return a new object of class 'String Literal Exp'.
	 * @generated
	 */
	 StringLiteralExp createStringLiteralExp();

	/**
	 * Returns a new object of class 'Tuple Literal Exp'.
	 * 
	 * 
	 * @return a new object of class 'Tuple Literal Exp'.
	 * @generated
	 */
	 TupleLiteralExp createTupleLiteralExp();

	/**
	 * Returns a new object of class 'Tuple Literal Part'.
	 * 
	 * 
	 * @return a new object of class 'Tuple Literal Part'.
	 * @generated
	 */
	 TupleLiteralPart createTupleLiteralPart();

	/**
	 * Returns a new object of class 'Type Exp'.
	 * 
	 * 
	 * @return a new object of class 'Type Exp'.
	 * @generated
	 */
	 TypeExp createTypeExp();

	/**
	 * Returns a new object of class 'Unspecified Value Exp'.
	 * 
	 * 
	 * @return a new object of class 'Unspecified Value Exp'.
	 * @generated
	 */
	 UnspecifiedValueExp createUnspecifiedValueExp();

	/**
	 * Returns a new object of class 'Variable'.
	 * 
	 * 
	 * @return a new object of class 'Variable'.
	 * @generated
	 */
	 Variable createVariable();

	/**
	 * Returns a new object of class 'Variable Exp'.
	 * 
	 * 
	 * @return a new object of class 'Variable Exp'.
	 * @generated
	 */
	 VariableExp createVariableExp();

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy