// ============================================================================ // // 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.resourcehelper; import java.util.Collection; import java.util.List; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFolder; import org.eclipse.emf.ecore.EObject; import org.talend.commons.emf.FactoriesUtil; import org.talend.dataquality.indicators.definition.IndicatorDefinition; import org.talend.dataquality.indicators.definition.util.DefinitionSwitch; import org.talend.resource.ResourceManager; import orgomg.cwm.objectmodel.core.ModelElement; /** * DOC xqliu class global comment. Detailled comment MOD mzhao 13676,split system indicators. 2010-07-08 */ public final class IndicatorResourceFileHelper extends ResourceFileMap { private static IndicatorResourceFileHelper instance; DefinitionSwitch<IndicatorDefinition> indicatorSwitch = new DefinitionSwitch<IndicatorDefinition>() { @Override public IndicatorDefinition caseIndicatorDefinition(IndicatorDefinition object) { return object; } }; private IndicatorResourceFileHelper() { super(); } public static IndicatorResourceFileHelper getInstance() { if (instance == null) { instance = new IndicatorResourceFileHelper(); } return instance; } public IndicatorDefinition findIndDefinition(IFile file) { if (checkFile(file)) { return (IndicatorDefinition) getModelElement(file); } return null; } /** * * DOC zshen Fetch all system indicators. * * @return */ @SuppressWarnings("unchecked") public List<IndicatorDefinition> getAllSysIs() { IFolder parentFolder = ResourceManager.getSystemIndicatorFolder(); return (List<IndicatorDefinition>) getAllElement(parentFolder); } /** * * DOC mzhao Fetch all user defined indicators. * * @return */ @SuppressWarnings("unchecked") public Collection<IndicatorDefinition> getAllUDIs() { IFolder parentFolder = ResourceManager.getUDIFolder(); return (List<IndicatorDefinition>) getAllElement(parentFolder); } /* * (non-Javadoc) * * @see org.talend.dq.helper.resourcehelper.ResourceFileMap#checkFile(org.eclipse.core.resources.IFile) */ @Override protected boolean checkFile(IFile file) { return file != null && FactoriesUtil.DEFINITION.equalsIgnoreCase(file.getFileExtension()); } /* * (non-Javadoc) * * @see org.talend.dq.helper.resourcehelper.ResourceFileMap#getTypedFolder() */ @Override public IFolder getTypedFolder() { return ResourceManager.getLibrariesFolder(); } /* * (non-Javadoc) * * @see org.talend.dq.helper.resourcehelper.ResourceFileMap#doSwitch(org.eclipse.emf.ecore.EObject) */ @Override public ModelElement doSwitch(EObject object) { return indicatorSwitch.doSwitch(object); } }