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);
}