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 extends TypedElement> 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();
}