/**
* <copyright>
* </copyright>
*
* $Id$
*/
package org.talend.dataquality.rules;
import org.eclipse.emf.common.util.EList;
import org.talend.dataquality.indicators.definition.IndicatorDefinition;
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b>Match Rule Definition</b></em>'.
* <!-- end-user-doc -->
*
* <!-- begin-model-doc -->
* The Match Rule Definition class.
* This match rule class stores blocking key definitions and match rule definitions.
* It also includes Merge (aka Survivorship) rule definitions.
* <!-- end-model-doc -->
*
* <p>
* The following features are supported:
* <ul>
* <li>{@link org.talend.dataquality.rules.MatchRuleDefinition#getBlockKeys <em>Block Keys</em>}</li>
* <li>{@link org.talend.dataquality.rules.MatchRuleDefinition#getMatchRules <em>Match Rules</em>}</li>
* <li>{@link org.talend.dataquality.rules.MatchRuleDefinition#getXmiId <em>Xmi Id</em>}</li>
* <li>{@link org.talend.dataquality.rules.MatchRuleDefinition#getRecordLinkageAlgorithm <em>Record Linkage Algorithm</em>}</li>
* <li>{@link org.talend.dataquality.rules.MatchRuleDefinition#getAppliedBlockKeys <em>Applied Block Keys</em>}</li>
* <li>{@link org.talend.dataquality.rules.MatchRuleDefinition#getSurvivorshipKeys <em>Survivorship Keys</em>}</li>
* <li>{@link org.talend.dataquality.rules.MatchRuleDefinition#getDefaultSurvivorshipDefinitions <em>Default Survivorship Definitions</em>}</li>
* <li>{@link org.talend.dataquality.rules.MatchRuleDefinition#getMatchGroupQualityThreshold <em>Match Group Quality Threshold</em>}</li>
* </ul>
* </p>
*
* @see org.talend.dataquality.rules.RulesPackage#getMatchRuleDefinition()
* @model
* @generated
*/
public interface MatchRuleDefinition extends IndicatorDefinition {
/**
* Returns the value of the '<em><b>Block Keys</b></em>' containment reference list.
* The list contents are of type {@link org.talend.dataquality.rules.BlockKeyDefinition}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Block Keys</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>Block Keys</em>' containment reference list.
* @see org.talend.dataquality.rules.RulesPackage#getMatchRuleDefinition_BlockKeys()
* @model containment="true"
* @generated
*/
EList<BlockKeyDefinition> getBlockKeys();
/**
* Returns the value of the '<em><b>Match Rules</b></em>' containment reference list.
* The list contents are of type {@link org.talend.dataquality.rules.MatchRule}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Match Rules</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>Match Rules</em>' containment reference list.
* @see org.talend.dataquality.rules.RulesPackage#getMatchRuleDefinition_MatchRules()
* @model containment="true"
* @generated
*/
EList<MatchRule> getMatchRules();
/**
* Returns the value of the '<em><b>Xmi Id</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* stores the xmi Id generated by EMF. Maybe empty when the Definition is contained by the indicator itself.
* <!-- end-model-doc -->
* @return the value of the '<em>Xmi Id</em>' attribute.
* @see #setXmiId(String)
* @see org.talend.dataquality.rules.RulesPackage#getMatchRuleDefinition_XmiId()
* @model
* @generated
*/
String getXmiId();
/**
* Sets the value of the '{@link org.talend.dataquality.rules.MatchRuleDefinition#getXmiId <em>Xmi Id</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Xmi Id</em>' attribute.
* @see #getXmiId()
* @generated
*/
void setXmiId(String value);
/**
* Returns the value of the '<em><b>Record Linkage Algorithm</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* The algorithm chosen for record linkage. Currently, it's either VSR (corresponding to the RecordMatcherType.simpleVSRMatcher used in tMatchGroup) or t-Swoosh (the algorithm used in MDM record linkage).
* <!-- end-model-doc -->
* @return the value of the '<em>Record Linkage Algorithm</em>' attribute.
* @see #setRecordLinkageAlgorithm(String)
* @see org.talend.dataquality.rules.RulesPackage#getMatchRuleDefinition_RecordLinkageAlgorithm()
* @model
* @generated
*/
String getRecordLinkageAlgorithm();
/**
* Sets the value of the '{@link org.talend.dataquality.rules.MatchRuleDefinition#getRecordLinkageAlgorithm <em>Record Linkage Algorithm</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Record Linkage Algorithm</em>' attribute.
* @see #getRecordLinkageAlgorithm()
* @generated
*/
void setRecordLinkageAlgorithm(String value);
/**
* Returns the value of the '<em><b>Applied Block Keys</b></em>' containment reference list.
* The list contents are of type {@link org.talend.dataquality.rules.AppliedBlockKey}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Applied Block Keys</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>Applied Block Keys</em>' containment reference list.
* @see org.talend.dataquality.rules.RulesPackage#getMatchRuleDefinition_AppliedBlockKeys()
* @model containment="true"
* @generated
*/
EList<AppliedBlockKey> getAppliedBlockKeys();
/**
* Returns the value of the '<em><b>Survivorship Keys</b></em>' containment reference list.
* The list contents are of type {@link org.talend.dataquality.rules.SurvivorshipKeyDefinition}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Survivorship Keys</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>Survivorship Keys</em>' containment reference list.
* @see org.talend.dataquality.rules.RulesPackage#getMatchRuleDefinition_SurvivorshipKeys()
* @model containment="true"
* @generated
*/
EList<SurvivorshipKeyDefinition> getSurvivorshipKeys();
/**
* Returns the value of the '<em><b>Default Survivorship Definitions</b></em>' containment reference list.
* The list contents are of type {@link org.talend.dataquality.rules.DefaultSurvivorshipDefinition}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Default Survivorship Definitions</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>Default Survivorship Definitions</em>' containment reference list.
* @see org.talend.dataquality.rules.RulesPackage#getMatchRuleDefinition_DefaultSurvivorshipDefinitions()
* @model containment="true"
* @generated
*/
EList<DefaultSurvivorshipDefinition> getDefaultSurvivorshipDefinitions();
/**
* Returns the value of the '<em><b>Match Group Quality Threshold</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* Threshold that indicates the quality of the group of similar records. Groups having a higher quality value are considered as matches and groups having a lower value are usually considered as suspects that need a clerical review.
* <!-- end-model-doc -->
* @return the value of the '<em>Match Group Quality Threshold</em>' attribute.
* @see #setMatchGroupQualityThreshold(double)
* @see org.talend.dataquality.rules.RulesPackage#getMatchRuleDefinition_MatchGroupQualityThreshold()
* @model
* @generated
*/
double getMatchGroupQualityThreshold();
/**
* Sets the value of the '{@link org.talend.dataquality.rules.MatchRuleDefinition#getMatchGroupQualityThreshold <em>Match Group Quality Threshold</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Match Group Quality Threshold</em>' attribute.
* @see #getMatchGroupQualityThreshold()
* @generated
*/
void setMatchGroupQualityThreshold(double value);
} // MatchRuleDefinition