/**
* <copyright>
* </copyright>
*
* $Id$
*/
package org.eclipse.gmf.codegen.gmfgen;
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b>Gen Metric Rule</b></em>'.
* <!-- end-user-doc -->
*
* <p>
* The following features are supported:
* <ul>
* <li>{@link org.eclipse.gmf.codegen.gmfgen.GenMetricRule#getKey <em>Key</em>}</li>
* <li>{@link org.eclipse.gmf.codegen.gmfgen.GenMetricRule#getRule <em>Rule</em>}</li>
* <li>{@link org.eclipse.gmf.codegen.gmfgen.GenMetricRule#getTarget <em>Target</em>}</li>
* <li>{@link org.eclipse.gmf.codegen.gmfgen.GenMetricRule#getLowLimit <em>Low Limit</em>}</li>
* <li>{@link org.eclipse.gmf.codegen.gmfgen.GenMetricRule#getHighLimit <em>High Limit</em>}</li>
* <li>{@link org.eclipse.gmf.codegen.gmfgen.GenMetricRule#getContainer <em>Container</em>}</li>
* </ul>
* </p>
*
* @see org.eclipse.gmf.codegen.gmfgen.GMFGenPackage#getGenMetricRule()
* @model annotation="http://www.eclipse.org/gmf/2005/constraints ocl='not lowLimit.oclIsUndefined() and not highLimit.oclIsUndefined() implies lowLimit < highLimit' description='Metric value \'lowLimit\' must be smaller then \'highLimit\''"
* @generated
*/
public interface GenMetricRule extends GenRuleBase {
/**
* Returns the value of the '<em><b>Key</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* Unique key identifying this metric an abbreviation for this metric
* <!-- end-model-doc -->
* @return the value of the '<em>Key</em>' attribute.
* @see #setKey(String)
* @see org.eclipse.gmf.codegen.gmfgen.GMFGenPackage#getGenMetricRule_Key()
* @model required="true"
* annotation="http://www.eclipse.org/gmf/2005/constraints ocl='not key.oclIsUndefined() implies container.metrics->one(i | i.key = self.key)' description='Metric rule with the same \'key\' already exists'"
* @generated
*/
String getKey();
/**
* Sets the value of the '{@link org.eclipse.gmf.codegen.gmfgen.GenMetricRule#getKey <em>Key</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Key</em>' attribute.
* @see #getKey()
* @generated
*/
void setKey(String value);
/**
* Returns the value of the '<em><b>Rule</b></em>' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* Expression that calculates the value of this metric which is of EDataType that encapsulates java.lang.Number subclasses or their primitives
* <!-- end-model-doc -->
* @return the value of the '<em>Rule</em>' reference.
* @see #setRule(ValueExpression)
* @see org.eclipse.gmf.codegen.gmfgen.GMFGenPackage#getGenMetricRule_Rule()
* @model required="true"
* annotation="http://www.eclipse.org/gmf/2005/constraints/meta def='context' ocl='target.getContext()'"
* annotation="http://www.eclipse.org/gmf/2005/constraints/meta def='type' ocl='\'ecore::EDoubleObject\''"
* @generated
*/
ValueExpression getRule();
/**
* Sets the value of the '{@link org.eclipse.gmf.codegen.gmfgen.GenMetricRule#getRule <em>Rule</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Rule</em>' reference.
* @see #getRule()
* @generated
*/
void setRule(ValueExpression value);
/**
* Returns the value of the '<em><b>Target</b></em>' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* The target representing the context this metric is evaluated in
* <!-- end-model-doc -->
* @return the value of the '<em>Target</em>' containment reference.
* @see #setTarget(GenMeasurable)
* @see org.eclipse.gmf.codegen.gmfgen.GMFGenPackage#getGenMetricRule_Target()
* @model containment="true" required="true"
* @generated
*/
GenMeasurable getTarget();
/**
* Sets the value of the '{@link org.eclipse.gmf.codegen.gmfgen.GenMetricRule#getTarget <em>Target</em>}' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Target</em>' containment reference.
* @see #getTarget()
* @generated
*/
void setTarget(GenMeasurable value);
/**
* Returns the value of the '<em><b>Container</b></em>' container reference.
* It is bidirectional and its opposite is '{@link org.eclipse.gmf.codegen.gmfgen.GenMetricContainer#getMetrics <em>Metrics</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* The containing metric container of this metric rule
* <!-- end-model-doc -->
* @return the value of the '<em>Container</em>' container reference.
* @see #setContainer(GenMetricContainer)
* @see org.eclipse.gmf.codegen.gmfgen.GMFGenPackage#getGenMetricRule_Container()
* @see org.eclipse.gmf.codegen.gmfgen.GenMetricContainer#getMetrics
* @model opposite="metrics" required="true" transient="false"
* @generated
*/
GenMetricContainer getContainer();
/**
* Sets the value of the '{@link org.eclipse.gmf.codegen.gmfgen.GenMetricRule#getContainer <em>Container</em>}' container reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Container</em>' container reference.
* @see #getContainer()
* @generated
*/
void setContainer(GenMetricContainer value);
/**
* Returns the value of the '<em><b>Low Limit</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Low Limit</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Low Limit</em>' attribute.
* @see #setLowLimit(Double)
* @see org.eclipse.gmf.codegen.gmfgen.GMFGenPackage#getGenMetricRule_LowLimit()
* @model
* @generated
*/
Double getLowLimit();
/**
* Sets the value of the '{@link org.eclipse.gmf.codegen.gmfgen.GenMetricRule#getLowLimit <em>Low Limit</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Low Limit</em>' attribute.
* @see #getLowLimit()
* @generated
*/
void setLowLimit(Double value);
/**
* Returns the value of the '<em><b>High Limit</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>High Limit</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>High Limit</em>' attribute.
* @see #setHighLimit(Double)
* @see org.eclipse.gmf.codegen.gmfgen.GMFGenPackage#getGenMetricRule_HighLimit()
* @model
* @generated
*/
Double getHighLimit();
/**
* Sets the value of the '{@link org.eclipse.gmf.codegen.gmfgen.GenMetricRule#getHighLimit <em>High Limit</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>High Limit</em>' attribute.
* @see #getHighLimit()
* @generated
*/
void setHighLimit(Double value);
} // GenMetricRule