blob: 280d530ada2c99fa824affc36690adc626ccc0a4 [file] [log] [blame]
/**
* Copyright (c) 2010, 2018 Willink Transformations 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 - Initial API and implementation
*/
package org.eclipse.ocl.pivot;
import java.util.Collection;
import java.util.List;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.ocl.pivot.values.IntegerValue;
import org.eclipse.ocl.pivot.values.TemplateParameterSubstitutions;
import org.eclipse.ocl.pivot.values.UnlimitedNaturalValue;
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b>Complete Environment</b></em>'.
* <!-- end-user-doc -->
*
* <p>
* The following features are supported:
* </p>
* <ul>
* <li>{@link org.eclipse.ocl.pivot.CompleteEnvironment#getOwnedCompleteModel <em>Owned Complete Model</em>}</li>
* <li>{@link org.eclipse.ocl.pivot.CompleteEnvironment#getOwnedStandardLibrary <em>Owned Standard Library</em>}</li>
* </ul>
*
* @see org.eclipse.ocl.pivot.PivotPackage#getCompleteEnvironment()
* @generated
*/
public interface CompleteEnvironment extends Element
{
/**
* Returns the value of the '<em><b>Owned Complete Model</b></em>' containment reference.
* It is bidirectional and its opposite is '{@link org.eclipse.ocl.pivot.CompleteModel#getOwningCompleteEnvironment <em>Owning Complete Environment</em>}'.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Owned Complete Model</em>' containment reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Owned Complete Model</em>' containment reference.
* @see #setOwnedCompleteModel(CompleteModel)
* @see org.eclipse.ocl.pivot.PivotPackage#getCompleteEnvironment_OwnedCompleteModel()
* @see org.eclipse.ocl.pivot.CompleteModel#getOwningCompleteEnvironment
* @generated
*/
@NonNull CompleteModel getOwnedCompleteModel();
/**
* Sets the value of the '{@link org.eclipse.ocl.pivot.CompleteEnvironment#getOwnedCompleteModel <em>Owned Complete Model</em>}' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Owned Complete Model</em>' containment reference.
* @see #getOwnedCompleteModel()
* @generated
*/
void setOwnedCompleteModel(CompleteModel value);
/**
* Returns the value of the '<em><b>Owned Standard Library</b></em>' containment reference.
* It is bidirectional and its opposite is '{@link org.eclipse.ocl.pivot.StandardLibrary#getOwningCompleteEnvironment <em>Owning Complete Environment</em>}'.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Owned Standard Library</em>' containment reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Owned Standard Library</em>' containment reference.
* @see #setOwnedStandardLibrary(StandardLibrary)
* @see org.eclipse.ocl.pivot.PivotPackage#getCompleteEnvironment_OwnedStandardLibrary()
* @see org.eclipse.ocl.pivot.StandardLibrary#getOwningCompleteEnvironment
* @generated
*/
@NonNull StandardLibrary getOwnedStandardLibrary();
/**
* Sets the value of the '{@link org.eclipse.ocl.pivot.CompleteEnvironment#getOwnedStandardLibrary <em>Owned Standard Library</em>}' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Owned Standard Library</em>' containment reference.
* @see #getOwnedStandardLibrary()
* @generated
*/
void setOwnedStandardLibrary(StandardLibrary value);
/**
* Return the instance of the Bag metatype whose elements are of elementType.
*/
@NonNull CollectionType getBagType(@NonNull Type elementType, boolean isNullFree, @Nullable IntegerValue lower, @Nullable UnlimitedNaturalValue upper);
/**
* @deprecated add isNullFree argument
*/
@Deprecated
@NonNull CollectionType getBagType(@NonNull Type elementType, @Nullable IntegerValue lower, @Nullable UnlimitedNaturalValue upper);
/**
* Return the specialized collection type for the containerType for elementType.
*/
@NonNull CollectionType getCollectionType(org.eclipse.ocl.pivot.@NonNull Class containerType, @NonNull Type elementType, boolean isNullFree, @Nullable IntegerValue lower, @Nullable UnlimitedNaturalValue upper);
/**
* @deprecated add isNullFree argument
*/
@Deprecated
@NonNull CollectionType getCollectionType(org.eclipse.ocl.pivot.@NonNull Class containerType, @NonNull Type elementType, @Nullable IntegerValue lower, @Nullable UnlimitedNaturalValue upper);
@NonNull LambdaType getLambdaType(@NonNull String typeName, @NonNull Type contextType, @NonNull List<@NonNull ? extends Type> parameterTypes, @NonNull Type resultType,
@Nullable TemplateParameterSubstitutions bindings);
/**
* @since 1.6
*/
default @NonNull MapType getMapType(org.eclipse.ocl.pivot.@NonNull Class containerType, @NonNull Type keyType, boolean keysAreNullFree, @NonNull Type valueType, boolean valuesAreNullFree) {
return getMapType(containerType, keyType, valueType);
}
/**
* @since 1.7
*/
@NonNull MapType getMapType(org.eclipse.ocl.pivot.@NonNull Class containerType, org.eclipse.ocl.pivot.@NonNull Class entryClass);
@Deprecated /* @deprecated provide null-free arguments */
@NonNull MapType getMapType(org.eclipse.ocl.pivot.@NonNull Class containerType, @NonNull Type keyType, @NonNull Type valueType);
org.eclipse.ocl.pivot.Package getNestedPackage(org.eclipse.ocl.pivot.@NonNull Package parentPackage, @NonNull String name);
Type getNestedType(org.eclipse.ocl.pivot.@NonNull Package parentPackage, @NonNull String name);
/**
* Return the instance of the OrderedSet metatype whose elements are of elementType.
*/
@NonNull CollectionType getOrderedSetType(@NonNull Type elementType, boolean isNullFree, @Nullable IntegerValue lower, @Nullable UnlimitedNaturalValue upper);
/**
* @deprecated add isNullFree argument
*/
@Deprecated
@NonNull CollectionType getOrderedSetType(@NonNull Type elementType, @Nullable IntegerValue lower, @Nullable UnlimitedNaturalValue upper);
/**
* Return the instance of the Sequence metatype whose elements are of elementType.
*/
@NonNull CollectionType getSequenceType(@NonNull Type elementType, boolean isNullFree, @Nullable IntegerValue lower, @Nullable UnlimitedNaturalValue upper);
/**
* @deprecated add isNullFree argument
*/
@Deprecated
@NonNull CollectionType getSequenceType(@NonNull Type elementType, @Nullable IntegerValue lower, @Nullable UnlimitedNaturalValue upper);
/**
* Return the instance of the Set metatype whose elements are of elementType.
*/
@NonNull CollectionType getSetType(@NonNull Type elementType, boolean isNullFree, @Nullable IntegerValue lower, @Nullable UnlimitedNaturalValue upper);
/**
* @deprecated add isNullFree argument
*/
@Deprecated
@NonNull CollectionType getSetType(@NonNull Type elementType, @Nullable IntegerValue lower, @Nullable UnlimitedNaturalValue upper);
@NonNull Type getSpecializedType(@NonNull Type type, @Nullable TemplateParameterSubstitutions substitutions);
@NonNull TupleType getTupleType(@NonNull String typeName, @NonNull Collection<@NonNull ? extends TypedElement> parts,
@Nullable TemplateParameterSubstitutions bindings);
} // CompleteEnvironment