/*****************************************************************************
* 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.statements;
import org.eclipse.papyrus.uml.alf.syntax.common.ElementReference;
import org.eclipse.papyrus.uml.alf.syntax.expressions.Expression;
import org.eclipse.papyrus.uml.alf.syntax.expressions.QualifiedName;
public class LocalNameDeclarationStatement extends Statement {
// Synthesized Properties
public Expression expression ;
public boolean hasMultiplicity = false ;
public String name ;
public QualifiedName typeName ;
// Derived Properties
public ElementReference type ;
// Constraints
/*
* The assignments after a local name declaration statement are the assignments before the statement plus a
* new assignment for the local name defined by the statement. The assigned source for the local name is
* the local name declaration statement. The local name has the type denoted by the type name if this is not
* empty and is untyped otherwise. If the statement has multiplicity, then the multiplicity of the local name
* is [0..*], otherwise it is [0..1].
*/
public void checkLocalNameDeclarationStatementAssignmentsAfter() {
}
/*
* The assignments before the expression of a local name declaration statement are the same as the
* assignments before the statement.
*/
public void checkLocalNameDeclarationStatementAssignmentsBefore() {
}
/*
* If a local name declaration statement does not have multiplicity, then the multiplicity of upper bound of
* the assigned expression must not be greater than 1.
*/
public void checkLocalNameDeclarationStatementExpressionMultiplicity() {
}
/*
* The local name in a local name declaration statement must be unassigned before the statement and
* before the expression in the statement. It must remain unassigned after the expression.
*/
public void checkLocalNameDeclarationStatementLocalName() {
}
/*
* If the type name in a local name declaration statement is not empty, then it must resolve to a nontemplate
* classifier and the expression must be assignable to that classifier.
*/
public void checkLocalNameDeclarationStatementType() {
}
/*
* The type of a local name declaration statement with a type name is the single classifier referent of the
* type name. Otherwise it is the type of the expression of the statement.
*/
public void checkLocalNameDeclarationStatementTypeDerivation() {
}
}