/** * <copyright> * </copyright> * * $Id$ */ package org.eclipse.bpel.fnmeta.model.util; import org.eclipse.bpel.fnmeta.model.Argument; import org.eclipse.bpel.fnmeta.model.Assistant; import org.eclipse.bpel.fnmeta.model.Registry; import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.xmi.XMLLoad; import org.eclipse.emf.ecore.xmi.XMLSave; import org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl; /** * <!-- begin-user-doc --> * The <b>Resource </b> associated with the package. * <!-- end-user-doc --> * @see org.eclipse.bpel.fnmeta.model.util.FMResourceFactoryImpl * @generated */ @SuppressWarnings("nls") public class FMResourceImpl extends XMLResourceImpl { /** * Creates an instance of the resource. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @param uri the URI of the new resource. * @generated */ public FMResourceImpl(URI uri) { super(uri); } /** * @generated NOT */ @Override protected XMLLoad createXMLLoad() { return new FMReader(); } /** * @generated NOT */ @Override protected XMLSave createXMLSave() { throw new RuntimeException("Resource does know how to save itself"); } /** * @generated NOT */ @Override public String getURIFragment(EObject eObject) { return super.getURIFragment(eObject); } /** * @generated NOT */ @Override public EObject getEObject (String uriFragment) { if (uriFragment == null) { return null; } EObject eObj = super.getEObject(uriFragment); if (eObj != null) { return eObj; } if (getContents().size() < 1) { return null; } Registry registry = (Registry) getContents().get(0); String name = parse(uriFragment,"assistant="); if (name != null) { for(Assistant a : registry.getAssistants()) { if (name.equals(a.getName())) { return a; } } } name = parse(uriFragment,"argument="); if (name != null) { for(Argument a : registry.getArguments()) { if (name.equals(a.getName())) { return a; } } } return null; } /** * @generated NOT */ String parse ( String str, String what ) { int x = str.lastIndexOf(what); if (x < 0) { return null; } return str.substring(x+what.length()); } } //FMResourceImpl