/*****************************************************************************
* 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 java.util.List;
public class IfStatement extends Statement {
// Synthesized Properties
public Block finalClause ;
public List<ConcurrentClauses> nonFinalClauses ;
// Derived Properties
public boolean isAssured ;
public boolean isDetermined ;
// Constraints
/*
* If an if statement does not have a final else clause, then any name that is unassigned before the if
* statement is unassigned after the if statement. If an if statement does have a final else clause, then any
* name that is unassigned before the if statement and is assigned after any one clause of the if statement
* must also be assigned after every other clause. The type of such names after the if statement is the
* effective common ancestor of the types of the name in each clause with a multiplicity lower bound that
* is the minimum of the lower bound for the name in each clause and a multiplicity upper bound that is the
* maximum for the name in each clause. For a name that has an assigned source after any clause of an if
* statement that is different than before that clause, then the assigned source after the if statement is the if
* statement. Otherwise, the assigned source of a name after the if statement is the same as before the if
* statement.
*/
public void checkIfStatementAssignmentsAfter() {
}
/*
* The assignments before all the non-final clauses of an if statement are the same as the assignments
* before the if statement. If the statement has a final clause, then the assignments before that clause are
* also the same as the assignments before the if statement.
*/
public void checkIfStatementAssignmentsBefore() {
}
/*
* The enclosing statement of all the statements in the bodies of all non-final clauses and in the final clause
* (if any) of an if statement is the if statement.
*/
public void checkIfStatementEnclosedStatements() {
}
/*
* An if statement is assured if it has an @assured annotation.
*/
public void checkIfStatementIsAssuredDerivation() {
}
/*
* An if statement is determined if it has an @determined annotation.
*/
public void checkIfStatementIsDeterminedDerivation() {
}
// Helper Operations
/*
* In addition to an @isolated annotation, an if statement may have @assured and @determined
* annotations. They may not have arguments.
*/
public boolean annotationAllowed (Annotation annotation) {
return false ;
}
}