// ============================================================================ // // Copyright (C) 2006-2016 Talend Inc. - www.talend.com // // This source code is available under agreement available at // %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt // // You should have received a copy of the agreement // along with this program; if not, write to Talend SA // 9 rue Pages 92150 Suresnes, France // // ============================================================================ package org.talend.dq.helper; import org.eclipse.emf.ecore.EObject; import org.talend.cwm.helper.SwitchHelpers; import org.talend.cwm.softwaredeployment.util.SoftwaredeploymentSwitch; import org.talend.cwm.xml.TdXmlSchema; import org.talend.cwm.xml.util.XmlSwitch; import org.talend.dataquality.analysis.Analysis; import org.talend.dataquality.analysis.util.AnalysisSwitch; import org.talend.dataquality.domain.pattern.Pattern; import org.talend.dataquality.domain.pattern.util.PatternSwitch; import org.talend.dataquality.indicators.definition.IndicatorDefinition; import org.talend.dataquality.indicators.definition.util.DefinitionSwitch; import org.talend.dataquality.indicators.sql.UserDefIndicator; import org.talend.dataquality.indicators.sql.util.IndicatorSqlSwitch; import org.talend.dataquality.rules.DQRule; import org.talend.dataquality.rules.MatchRuleDefinition; import org.talend.dataquality.rules.util.RulesSwitch; import orgomg.cwm.foundation.softwaredeployment.SoftwareSystem; import orgomg.cwmx.analysis.informationreporting.Report; import orgomg.cwmx.analysis.informationreporting.util.InformationreportingSwitch; /** * * This class is a utility class to decide what's the real type of a model element. * * Designed by zqin, 2010-6-25 */ public final class ModelElementIdentifier { private ModelElementIdentifier() { // } public static final AnalysisSwitch<Analysis> ANALYSIS = new AnalysisSwitch<Analysis>() { @Override public Analysis caseAnalysis(Analysis object) { return object; }; }; public static final InformationreportingSwitch<Report> REPORT = new InformationreportingSwitch<Report>() { @Override public Report caseReport(Report object) { return object; }; }; public static final PatternSwitch<Pattern> PATTERN = new PatternSwitch<Pattern>() { @Override public Pattern casePattern(Pattern object) { return object; }; }; public static final DefinitionSwitch<IndicatorDefinition> INDICATOR_DEFINITION = new DefinitionSwitch<IndicatorDefinition>() { @Override public IndicatorDefinition caseIndicatorDefinition(IndicatorDefinition object) { return object; }; }; public static final RulesSwitch<MatchRuleDefinition> MATCH_RULE = new RulesSwitch<MatchRuleDefinition>() { @Override public MatchRuleDefinition caseMatchRuleDefinition(MatchRuleDefinition object) { return object; }; }; public static final RulesSwitch<DQRule> DQ_RULE = new RulesSwitch<DQRule>() { @Override public DQRule caseDQRule(DQRule object) { return object; }; }; public static final SoftwaredeploymentSwitch<SoftwareSystem> SOFTWARE = new SoftwaredeploymentSwitch<SoftwareSystem>() { @Override public SoftwareSystem caseSoftwareSystem(SoftwareSystem object) { return object; }; }; public static final XmlSwitch<TdXmlSchema> XMLDOC = new XmlSwitch<TdXmlSchema>() { @Override public TdXmlSchema caseTdXmlSchema(TdXmlSchema object) { return object; }; }; public static final IndicatorSqlSwitch<UserDefIndicator> UDI = new IndicatorSqlSwitch<UserDefIndicator>() { @Override public UserDefIndicator caseUserDefIndicator(UserDefIndicator object) { return object; }; }; /** * DOC bZhou Comment method "isAnalysis". * * Decide it's an analysis or not. * * @param element * @return */ public static boolean isAnalysis(EObject element) { return ANALYSIS.doSwitch(element) != null; } /** * DOC bZhou Comment method "isReport". * * Decide it's a report or not. * * @param element * @return */ public static boolean isReport(EObject element) { return REPORT.doSwitch(element) != null; } /** * DOC bZhou Comment method "isPattern". * * Decide it's a pattern or not. * * @param element * @return */ public static boolean isPattern(EObject element) { return PATTERN.doSwitch(element) != null; } /** * DOC bZhou Comment method "isID". * * Decide it's an indicator defintion or not. * * @param element * @return */ public static boolean isID(EObject element) { return INDICATOR_DEFINITION.doSwitch(element) != null; } /** * * * Decide it's an match rule or not. * * @param element * @return */ public static boolean isMatchRule(EObject element) { return MATCH_RULE.doSwitch(element) != null; } /** * DOC bZhou Comment method "isDQRule". * * Decide it's a dq rule or not. * * @param element * @return */ public static boolean isDQRule(EObject element) { return DQ_RULE.doSwitch(element) != null; } /** * DOC bZhou Comment method "isDataProvider". * * Decide it's a data provider or not. * * @param element * @return */ public static boolean isDataProvider(EObject element) { return SwitchHelpers.CONNECTION_SWITCH.doSwitch(element) != null; } /** * DOC bZhou Comment method "isXMLProvider". * * Decide it's a XML provider or not. * * @param element * @return */ public static boolean isXMLProvider(EObject element) { return XMLDOC.doSwitch(element) != null; } /** * DOC bZhou Comment method "isSoftware". * * Decide it's a software system or not. * * @param element * @return */ public static boolean isSoftware(EObject element) { return SOFTWARE.doSwitch(element) != null; } /** * DOC bZhou Comment method "isUDID". * * Decide it's a user defined indicator or not. * * @param element * @return */ public static boolean isUDID(EObject element) { return UDI.doSwitch(element) != null; } }