| /****************************************************************************** |
| * Copyright (c) 2006 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| ****************************************************************************/ |
| |
| package org.eclipse.gmf.runtime.emf.core.resources; |
| |
| import org.eclipse.emf.ecore.EObject; |
| import org.eclipse.emf.transaction.TransactionalEditingDomain; |
| |
| |
| /** |
| * Mix-in interface to be implemented by {@link Resource.Factory} implementations |
| * that provide extended object name/type/ID information in proxy URIs and/or |
| * custom proxy resolution strategies. |
| * |
| * @author Christian W. Damus (cdamus) |
| */ |
| public interface IExtendedResourceFactory { |
| /** |
| * Obtains the name of the specified <code>proxy</code> object from its |
| * proxy URI. |
| * |
| * @param proxy a proxy object |
| * |
| * @return its name, or <code>null</code> to defer to the default proxy name |
| * algorithm |
| */ |
| String getProxyName(EObject proxy); |
| |
| /** |
| * Obtains the qualified name of the specified <code>proxy</code> object from its |
| * proxy URI. |
| * |
| * @param proxy a proxy object |
| * |
| * @return its qualified name, or <code>null</code> to defer to the default |
| * proxy qualified name algorithm |
| */ |
| String getProxyQualifiedName(EObject proxy); |
| |
| /** |
| * Obtains the ID of the specified <code>proxy</code> object from its |
| * proxy URI. |
| * |
| * @param proxy a proxy object |
| * |
| * @return its ID, or <code>null</code> to defer to the default proxy ID |
| * algorithm |
| */ |
| String getProxyID(EObject proxy); |
| |
| /** |
| * Obtains the ID of the specified <code>proxy</code> object's EClass from its |
| * proxy URI. |
| * |
| * @param proxy a proxy object |
| * |
| * @return its EClass ID, or <code>null</code> to defer to the default proxy |
| * EClass ID algorithm |
| */ |
| String getProxyClassID(EObject proxy); |
| |
| /** |
| * Resolves the specified <code>proxy</code> object. |
| * |
| * @param domain the editing domain in which to resolve the proxy (provides, |
| * among other things, the resource set context) |
| * @param proxy a proxy object |
| * |
| * @return the resolved object, or <code>null</code> if the proxy |
| * cannot be resolved |
| */ |
| EObject resolve(TransactionalEditingDomain domain, EObject proxy); |
| } |