// ============================================================================ // // Copyright (C) 2006-2012 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.commons.emf; import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; /** * @author scorreia * * This factory only create CwmResource. It can be used in plugin.xml file in order to automatically map the editor to a * file name extension. * * see http://serdom.szn.pl/ser/?p=6 */ public class CwmResourceFactory extends XMIResourceFactoryImpl { public CwmResourceFactory() { } @Override public Resource createResource(URI uri) { String business = "businessProcess"; // context + process String context = "context"; String process = "process"; String joblet = "joblets"; if (uri.toString().contains("/" + business + "/") && uri.segmentCount() > 2 && uri.segments()[2].equals(business)) { return super.createResource(uri); } else if (uri.toString().contains("/" + context + "/") && uri.segmentCount() > 2 && uri.segments()[2].equals(context)) { return super.createResource(uri); } else if (uri.toString().contains("/" + process + "/") && uri.segmentCount() > 2 && uri.segments()[2].equals(process)) { return super.createResource(uri); } else if (uri.toString().contains("/" + joblet + "/") && uri.segmentCount() > 2 && uri.segments()[2].equals(joblet)) { return super.createResource(uri); } else { return new CwmResource(uri); } } }