blob: 21c91fab604879ac31a60dfc4f46fe2525360a7e [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2013, 2018 CEA LIST and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v2.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v20.html
*
* Contributors:
* E.D.Willink(CEA LIST) - Initial API and implementation
*******************************************************************************/
package org.eclipse.ocl.examples.codegen.cgmodel;
import java.util.List;
import org.eclipse.emf.ecore.EClassifier;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b>CG Valued Element</b></em>'.
* <!-- end-user-doc -->
*
* <p>
* The following features are supported:
* </p>
* <ul>
* <li>{@link org.eclipse.ocl.examples.codegen.cgmodel.CGValuedElement#getDependsOn <em>Depends On</em>}</li>
* <li>{@link org.eclipse.ocl.examples.codegen.cgmodel.CGValuedElement#getOwns <em>Owns</em>}</li>
* </ul>
*
* @see org.eclipse.ocl.examples.codegen.cgmodel.CGModelPackage#getCGValuedElement()
* @generated
*/
public interface CGValuedElement extends CGTypedElement {
/**
* Returns the value of the '<em><b>Depends On</b></em>' reference list.
* The list contents are of type {@link org.eclipse.ocl.examples.codegen.cgmodel.CGValuedElement}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* The elements that must be declared before this element.
* <!-- end-model-doc -->
* @return the value of the '<em>Depends On</em>' reference list.
* @see org.eclipse.ocl.examples.codegen.cgmodel.CGModelPackage#getCGValuedElement_DependsOn()
* @generated
*/
List<CGValuedElement> getDependsOn();
/**
* Returns the value of the '<em><b>Owns</b></em>' containment reference list.
* The list contents are of type {@link org.eclipse.ocl.examples.codegen.cgmodel.CGValuedElement}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Owns</em>' containment reference list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Owns</em>' containment reference list.
* @see org.eclipse.ocl.examples.codegen.cgmodel.CGModelPackage#getCGValuedElement_Owns()
* @generated
*/
List<CGValuedElement> getOwns();
/**
* Return a non-null EClassifier if this value has a known EClassifier to define its instance class.
*
* @generated
*/
// Generated from org.eclipse.ocl.examples.build.modelspecs.CGValuedElementModelSpec$Box$15
@Nullable EClassifier getEcoreClassifier();
/**
* Return a non-null invalid value if this value is invalid.
*
* @generated
*/
// Generated from org.eclipse.ocl.examples.build.modelspecs.CGValuedElementModelSpec$Inv$10
@Nullable CGInvalid getInvalidValue();
/**
* Return the CGValuedElement that provides the name of a declaration from which the value of this CGValuedElement may be obtained.
* Fundamental elements such as constants and operation calls provide the named value themselves.
* More complex elements such as VariableExp and ThrowExp may delegate.
*
* @generated
*/
// Generated from org.eclipse.ocl.examples.build.modelspecs.CGValuedElementModelSpec$Val$7
@NonNull CGValuedElement getNamedValue();
/**
* Return the CGValuedElement to which the value of this CGValuedElement delegates.
* Fundamental elements such as constants and operation calls provide the named value themselves.
* More complex elements such as VariableExp and ThrowExp may delegate.
*
* @generated
*/
// Generated from org.eclipse.ocl.examples.build.modelspecs.CGValuedElementModelSpec$Val$8
@NonNull CGValuedElement getReferredValue();
/**
* Return the CGValuedElement which is the source of the information value of this element.
* Note that the source value may be differently guarded, caught/thrown and boxed/unboxed to this value.
* Returns this if no delegation occurs.
*
* @generated
*/
// Generated from org.eclipse.ocl.examples.build.modelspecs.CGValuedElementModelSpec$Val$8
@NonNull CGValuedElement getSourceValue();
/**
* Return a simpler CGValuedElement that is fully equivalent to this element.
* May return CGInvalid if this element is invalid.
* May return the internal value of a CollectionPart or TuplePart.
* May follow a delegation when the delegation has no semantic significance.
* Returns this if no simplification occurs.
*
* @generated
*/
// Generated from org.eclipse.ocl.examples.build.modelspecs.CGValuedElementModelSpec$Ths$5
@NonNull CGValuedElement getThisValue();
/**
* Return the CGValuedElement that provides the narrowest type declaration from which the type of this CGValuedElement may be obtained.
* Fundamental elements such as constants and operations call provide their own narrow type.
* More complex elements such as CatchExp have a wide type that includes invalid and so delegate to identify the narrow type.
* More complex elements such as GuardExp/ThrowExp propagate an unchanged value with a narrower type than their source.
*
* @generated
*/
// Generated from org.eclipse.ocl.examples.build.modelspecs.CGValuedElementModelSpec$Val$9
@NonNull CGValuedElement getTypedValue();
/**
* Return the declared name value of this element. The text is valid for use in the target language and
* unique within the context in which this element is declared.
*
* @generated
*/
// Generated from org.eclipse.ocl.examples.build.modelspecs.CGValuedElementModelSpec$Val$10
@Nullable String getValueName();
/**
* Return true if this value is not null, possibly with the aid of an assertion.
*
* @generated
*/
// Generated from org.eclipse.ocl.examples.build.modelspecs.CGValuedElementModelSpec$Nul$12
boolean isAssertedNonNull();
/**
* Return true if this value is a boxed value.
*
* @generated
*/
// Generated from org.eclipse.ocl.examples.build.modelspecs.CGValuedElementModelSpec$Box$9
boolean isBoxed();
/**
* Returns true if any exception associated with this value has been caught and consequently the value may be an InvalidValueException.
* Returns true if any exception has been thrown.
*
* @generated
*/
// Generated from org.eclipse.ocl.examples.build.modelspecs.CGValuedElementModelSpec$Ct$4
boolean isCaught();
/**
* Return true if this value can be shared as part of a Common Subexpression.
*
* @generated
*/
// Generated from org.eclipse.ocl.examples.build.modelspecs.CGValuedElementModelSpec$Com$5
boolean isCommonable();
/**
* Return true if this value is a local constant (dependent of the user type system).
*
* @generated
*/
// Generated from org.eclipse.ocl.examples.build.modelspecs.CGValuedElementModelSpec$Con$9
boolean isConstant();
/**
* Return true if this value is an Ecore value.
*
* @generated
*/
// Generated from org.eclipse.ocl.examples.build.modelspecs.CGValuedElementModelSpec$Box$11
boolean isEcore();
/**
* Returns true/false if this value can be determined to have deep value equivalence/inequivalence to thatValue, null if no determination can be made.
*
* @generated
*/
// Generated from org.eclipse.ocl.examples.build.modelspecs.CGValuedElementModelSpec$Eq$15
@Nullable Boolean isEquivalentTo(@NonNull CGValuedElement thatValue);
/**
* Provided that thatValue does not delegate its equivalence computation, return true/false if this value can be determined to have deep value equivalence/inequivalence to thatValue, null if no determination can be made.
*
* @generated
*/
// Generated from org.eclipse.ocl.examples.build.modelspecs.CGValuedElementModelSpec$Eq$16
@Nullable Boolean isEquivalentToInternal(@NonNull CGValuedElement thatValue);
/**
* Return true if this value is false.
*
* @generated
*/
// Generated from org.eclipse.ocl.examples.build.modelspecs.CGValuedElementModelSpec$Log$8
boolean isFalse();
/**
* Return true if this value is a global constant (independent of the user type system).
*
* @generated
*/
// Generated from org.eclipse.ocl.examples.build.modelspecs.CGValuedElementModelSpec$Glo$7
boolean isGlobal();
/**
* Return true if this value is inlined and so has no local or global declaration.
*
* @generated
*/
// Generated from org.eclipse.ocl.examples.build.modelspecs.CGValuedElementModelSpec$Inl$7
boolean isInlined();
/**
* Return true if this value is false.
*
* @generated
*/
// Generated from org.eclipse.ocl.examples.build.modelspecs.CGValuedElementModelSpec$Inv$11
boolean isInvalid();
/**
* Return true if this value is false.
*
* @generated
*/
// Generated from org.eclipse.ocl.examples.build.modelspecs.CGValuedElementModelSpec$Inv$12
boolean isNonInvalid();
/**
* Return true if this value is not null.
*
* @generated
*/
// Generated from org.eclipse.ocl.examples.build.modelspecs.CGValuedElementModelSpec$Nul$11
boolean isNonNull();
/**
* Return true if this value is null.
*
* @generated
*/
// Generated from org.eclipse.ocl.examples.build.modelspecs.CGValuedElementModelSpec$Nul$12
boolean isNull();
/**
* Return true if this value can be inlined as an expression term.
*
* @generated
*/
// Generated from org.eclipse.ocl.examples.build.modelspecs.CGValuedElementModelSpec$Set$3
boolean isSettable();
/**
* Return true if this value is true.
*
* @generated
*/
// Generated from org.eclipse.ocl.examples.build.modelspecs.CGValuedElementModelSpec$Log$9
boolean isTrue();
/**
* Return true if this value is an unboxed value.
*
* @generated
*/
// Generated from org.eclipse.ocl.examples.build.modelspecs.CGValuedElementModelSpec$Box$10
boolean isUnboxed();
/**
* Return true if this value does not have to be shared as part of a Common Subexpression.
*
* @generated
*/
// Generated from org.eclipse.ocl.examples.build.modelspecs.CGValuedElementModelSpec$Com$6
boolean isUncommonable();
/**
* Set the caught status.
*
* @generated
*/
// Generated from org.eclipse.ocl.examples.build.modelspecs.CGValuedElementModelSpec$Ct$5
void setCaught(boolean isCaught);
/**
* Set the name of the value.
*
* @generated
*/
// Generated from org.eclipse.ocl.examples.build.modelspecs.CGValuedElementModelSpec$Val$11
void setValueName(@NonNull String valueName);
} // CGValuedElement