/***************************************************************************** * Copyright (c) 2011 CEA LIST. * * * 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: * CEA LIST - Initial API and implementation * *****************************************************************************/ package org.eclipse.papyrus.uml.alf.syntax.expressions; import java.util.ArrayList; import java.util.List; import org.eclipse.papyrus.uml.alf.syntax.common.AssignedSource; public class SequenceOperationExpression extends InvocationExpression { // Synthesized Properties public QualifiedName operation ; public ExtentOrExpression primary ; // Derived Properties public boolean isBitStringConversion ; public boolean isCollectionConversion ; // Constraints /* * The type of an input argument expression of a sequence operation parameter must be assignable to its * corresponding parameter. The type of an output parameter must be assignable to its corresponding * argument expression. (Note that this implies that the type of an argument expression for an inout * parameter must be the same as the type of that parameter.) */ public void checkSequenceOperationExpressionArgumentCompatibility() { } /* * The assignments before the primary expression of a sequence operation expression are the same as the * assignments before the sequence operation expression. */ public void checkSequenceOperationExpressionAssignmentsBefore() { } /* * There is no feature for a sequence operation expression. */ public void checkSequenceOperationExpressionFeatureDerivation() { } /* * BitString conversion is required if type of the first parameter of the referent of a sequence operation * expression is BitString and either the type of its primary expression is Integer or collection conversion is * required and the type of its primary expression is a collection class whose argument type is Integer. */ public void checkSequenceOperationExpressionIsBitStringConversionDerivation() { } /* * Collection conversion is required if the type of the primary expression of a sequence operation * expression is a collection class. */ public void checkSequenceOperationExpressionIsCollectionConversionDerivation() { } /* * There must be a single behavior that is a resolution of the operation qualified name of a sequence * operation expression with a least one parameter, whose first parameter has direction in or inout, has * multiplicity [0..*] and to which the target primary expression is assignable. */ public void checkSequenceOperationExpressionOperationReferent() { } /* * The referent for a sequence operation expression is the behavior named by the operation for the * expression. */ public void checkSequenceOperationExpressionReferentDerivation() { } /* * If the first parameter of the referent has direction inout, then the parameter type must have the same type as the primary expression. */ public void checkSequenceOperationExpressionTargetCompatibility() { } //Helper Operations /* * The assignments after a sequence operation expression include those made in the primary expression * and those made in the tuple and, for an "in place" operation (one whose first parameter is inout), that * made by the sequence operation expression itself. */ public List<AssignedSource> updateAssignments() { return new ArrayList<AssignedSource>() ; } }