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

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

/**
 * 
 *
 * Copyright (c) 2005, 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: Visitor.java,v 1.4 2008/10/12 01:09:48 cdamus Exp $
 */

package org.eclipse.ocl.utilities;

//import org.eclipse.emf.ecore.EObject;
import org.eclipse.ocl.expressions.AssociationClassCallExp;
import org.eclipse.ocl.expressions.BooleanLiteralExp;
import org.eclipse.ocl.expressions.CollectionItem;
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;

/**
 * Something which can visit an OCLExpression.  Each subclass
 * will call a corresponding method on the Visitor.  See
 * Design Patterns -- Visitor.
 * 
 * @author Tim Klinger (tklinger)
 * @author Christian W. Damus (cdamus)
 */
public interface Visitor {

	/**
	 * 
	 * 
	 * @model variableExpRequired="true"
	 * @generated
	 */
	T visitVariableExp(VariableExp variableExp);

	/**
	 * 
	 * 
	 * @model letExpRequired="true"
	 * @generated
	 */
	T visitLetExp(LetExp letExp);

	/**
	 * 
	 * 
	 * @model ifExpRequired="true"
	 * @generated
	 */
	T visitIfExp(IfExp ifExp);

	/**
	 * 
	 * 
	 * @model typeExpRequired="true"
	 * @generated
	 */
	T visitTypeExp(TypeExp typeExp);

	/**
	 * 
	 * 
	 * @model callExpRequired="true"
	 * @generated
	 */
	T visitPropertyCallExp(PropertyCallExp callExp);

	/**
	 * 
	 * 
	 * @model callExpRequired="true"
	 * @generated
	 */
	T visitOperationCallExp(OperationCallExp callExp);

	/**
	 * 
	 * 
	 * @model callExpRequired="true"
	 * @generated
	 */
	T visitAssociationClassCallExp(AssociationClassCallExp callExp);

	/**
	 * 
	 * 
	 * @model callExpRequired="true"
	 * @generated
	 */
	T visitIteratorExp(IteratorExp callExp);

	/**
	 * 
	 * 
	 * @model callExpRequired="true"
	 * @generated
	 */
	T visitIterateExp(IterateExp callExp);

	/**
	 * 
	 * 
	 * @model unspecExpRequired="true"
	 * @generated
	 */
	T visitUnspecifiedValueExp(UnspecifiedValueExp unspecExp);

	/**
	 * 
	 * 
	 * @model literalExpRequired="true"
	 * @generated
	 */
	T visitIntegerLiteralExp(IntegerLiteralExp literalExp);

	/**
	 * 
	 * 
	 * @model literalExpRequired="true"
	 * @generated
	 */
	T visitUnlimitedNaturalLiteralExp(UnlimitedNaturalLiteralExp literalExp);

	/**
	 * 
	 * 
	 * @model literalExpRequired="true"
	 * @generated
	 */
	T visitRealLiteralExp(RealLiteralExp literalExp);

	/**
	 * 
	 * 
	 * @model literalExpRequired="true"
	 * @generated
	 */
	T visitStringLiteralExp(StringLiteralExp literalExp);

	/**
	 * 
	 * 
	 * @model literalExpRequired="true"
	 * @generated
	 */
	T visitBooleanLiteralExp(BooleanLiteralExp literalExp);

	/**
	 * 
	 * 
	 * @model literalExpRequired="true"
	 * @generated
	 */
	T visitEnumLiteralExp(EnumLiteralExp literalExp);

	/**
	 * 
	 * 
	 * @model literalExpRequired="true"
	 * @generated
	 */
	T visitCollectionLiteralExp(CollectionLiteralExp literalExp);

	/**
	 * 
	 * 
	 * @model itemRequired="true"
	 * @generated
	 */
	T visitCollectionItem(CollectionItem item);

	/**
	 * 
	 * 
	 * @model rangeRequired="true"
	 * @generated
	 */
	T visitCollectionRange(CollectionRange range);

	/**
	 * 
	 * 
	 * @model literalExpRequired="true"
	 * @generated
	 */
	T visitTupleLiteralExp(TupleLiteralExp literalExp);

	/**
	 * 
	 * 
	 * @model partRequired="true"
	 * @generated
	 */
	T visitTupleLiteralPart(TupleLiteralPart part);

	/**
	 * 
	 * 
	 * @model literalExpRequired="true"
	 * @generated
	 */
	T visitInvalidLiteralExp(InvalidLiteralExp literalExp);

	/**
	 * 
	 * 
	 * @model literalExpRequired="true"
	 * @generated
	 */
	T visitNullLiteralExp(NullLiteralExp literalExp);

	/**
	 * 
	 * 
	 * @model stateExpRequired="true"
	 * @generated
	 */
	T visitStateExp(StateExp stateExp);

	/**
	 * 
	 * 
	 * @model messageExpRequired="true"
	 * @generated
	 */
	T visitMessageExp(MessageExp messageExp);

	/**
	 * 
	 * 
	 * @model variableRequired="true"
	 * @generated
	 */
	T visitVariable(Variable variable);

	/**
	 * 
	 * 
	 * @model expressionRequired="true"
	 * @generated
	 */
	T visitExpressionInOCL(ExpressionInOCL expression);

	/**
	 * 
	 * 
	 * @model constraintRequired="true"
	 * @generated
	 */
	T visitConstraint(CT constraint);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy