/**
* <copyright>
* </copyright>
*
* $Id$
*/
package orgomg.cwm.analysis.olap;
import org.eclipse.emf.common.util.EList;
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b>Cube Region</b></em>'.
* <!-- end-user-doc -->
*
* <!-- begin-model-doc -->
* CubeRegion models a sub-unit of a Cube of the same dimensionality as the Cube itself, with each Dimension optionally subsetted in its list of members.
*
* When mapped to its physical source, a CubeRegion contains data cells identified by the member combinations of the Cartesian product of the CubeRegion's associated Dimensions and Measures.
*
* The relative ordering of CubeDeployment classes optionally implies a desired order of selection of the CubeDeployments, based on implementation-specific considerations (e.g., optimized access of aggregate data).
*
* Synonyms: Sub-Cube, Partition, Slice, Region, Area.
*
* Misc. notes:
* 1. A CubeRegion is not a Cube, and a Cube is not a CubeRegion.
* 2. A Cube has a Measure and CubeRegion may have a corresponding measure (Measures are Attributes).
* 3. A Cube may or may not have CubeRegions.
* 4. If a Cube does not have a CubeRegion, then it's not physically mapped (it's virtual). All physical mapping is based on the CubeRegion , not the Cube.
* <!-- end-model-doc -->
*
* <p>
* The following features are supported:
* <ul>
* <li>{@link orgomg.cwm.analysis.olap.CubeRegion#isIsReadOnly <em>Is Read Only</em>}</li>
* <li>{@link orgomg.cwm.analysis.olap.CubeRegion#isIsFullyRealized <em>Is Fully Realized</em>}</li>
* <li>{@link orgomg.cwm.analysis.olap.CubeRegion#getCube <em>Cube</em>}</li>
* <li>{@link orgomg.cwm.analysis.olap.CubeRegion#getMemberSelectionGroup <em>Member Selection Group</em>}</li>
* <li>{@link orgomg.cwm.analysis.olap.CubeRegion#getCubeDeployment <em>Cube Deployment</em>}</li>
* </ul>
* </p>
*
* @see orgomg.cwm.analysis.olap.OlapPackage#getCubeRegion()
* @model
* @generated
*/
public interface CubeRegion extends orgomg.cwm.objectmodel.core.Class {
/**
* Returns the value of the '<em><b>Is Read Only</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* If true, then the CubeRegion content is read-only (i.e., may not be written or updated through the CubeRegion -- e.g., a CubeRegion implemented via an SQL view may not permit updates to the underlying base table).
* <!-- end-model-doc -->
* @return the value of the '<em>Is Read Only</em>' attribute.
* @see #setIsReadOnly(boolean)
* @see orgomg.cwm.analysis.olap.OlapPackage#getCubeRegion_IsReadOnly()
* @model dataType="orgomg.cwm.objectmodel.core.Boolean"
* @generated
*/
boolean isIsReadOnly();
/**
* Sets the value of the '{@link orgomg.cwm.analysis.olap.CubeRegion#isIsReadOnly <em>Is Read Only</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Is Read Only</em>' attribute.
* @see #isIsReadOnly()
* @generated
*/
void setIsReadOnly(boolean value);
/**
* Returns the value of the '<em><b>Is Fully Realized</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* If true, then this CubeRegion has a direct physical realization and is not bound by any MemberSelections.
* <!-- end-model-doc -->
* @return the value of the '<em>Is Fully Realized</em>' attribute.
* @see #setIsFullyRealized(boolean)
* @see orgomg.cwm.analysis.olap.OlapPackage#getCubeRegion_IsFullyRealized()
* @model dataType="orgomg.cwm.objectmodel.core.Boolean"
* @generated
*/
boolean isIsFullyRealized();
/**
* Sets the value of the '{@link orgomg.cwm.analysis.olap.CubeRegion#isIsFullyRealized <em>Is Fully Realized</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Is Fully Realized</em>' attribute.
* @see #isIsFullyRealized()
* @generated
*/
void setIsFullyRealized(boolean value);
/**
* Returns the value of the '<em><b>Cube</b></em>' container reference.
* It is bidirectional and its opposite is '{@link orgomg.cwm.analysis.olap.Cube#getCubeRegion <em>Cube Region</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* The Cube owning CubeRegions.
* <!-- end-model-doc -->
* @return the value of the '<em>Cube</em>' container reference.
* @see #setCube(Cube)
* @see orgomg.cwm.analysis.olap.OlapPackage#getCubeRegion_Cube()
* @see orgomg.cwm.analysis.olap.Cube#getCubeRegion
* @model opposite="cubeRegion" required="true"
* @generated
*/
Cube getCube();
/**
* Sets the value of the '{@link orgomg.cwm.analysis.olap.CubeRegion#getCube <em>Cube</em>}' container reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Cube</em>' container reference.
* @see #getCube()
* @generated
*/
void setCube(Cube value);
/**
* Returns the value of the '<em><b>Member Selection Group</b></em>' containment reference list.
* The list contents are of type {@link orgomg.cwm.analysis.olap.MemberSelectionGroup}.
* It is bidirectional and its opposite is '{@link orgomg.cwm.analysis.olap.MemberSelectionGroup#getCubeRegion <em>Cube Region</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* MemberSelectionGroups owned by the CubeRegion.
* <!-- end-model-doc -->
* @return the value of the '<em>Member Selection Group</em>' containment reference list.
* @see orgomg.cwm.analysis.olap.OlapPackage#getCubeRegion_MemberSelectionGroup()
* @see orgomg.cwm.analysis.olap.MemberSelectionGroup#getCubeRegion
* @model opposite="cubeRegion" containment="true"
* @generated
*/
EList<MemberSelectionGroup> getMemberSelectionGroup();
/**
* Returns the value of the '<em><b>Cube Deployment</b></em>' containment reference list.
* The list contents are of type {@link orgomg.cwm.analysis.olap.CubeDeployment}.
* It is bidirectional and its opposite is '{@link orgomg.cwm.analysis.olap.CubeDeployment#getCubeRegion <em>Cube Region</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* The CubeDeployments owned by a CubeRegion.
* <!-- end-model-doc -->
* @return the value of the '<em>Cube Deployment</em>' containment reference list.
* @see orgomg.cwm.analysis.olap.OlapPackage#getCubeRegion_CubeDeployment()
* @see orgomg.cwm.analysis.olap.CubeDeployment#getCubeRegion
* @model opposite="cubeRegion" containment="true"
* @generated
*/
EList<CubeDeployment> getCubeDeployment();
} // CubeRegion