| /******************************************************************************* |
| * Copyright (c) 2001, 2005 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 |
| * Jens Lukowski/Innoopract - initial renaming/restructuring |
| * |
| *******************************************************************************/ |
| package org.eclipse.wst.sse.core.internal.provisional; |
| |
| /** |
| * INodeNotifiers can be adapted by INodeAdapters. This factory interface |
| * provides a way to provide factories which are invoked by the infrastructure |
| * to manage this process, from creating, to adapting, to releasing, if |
| * required. |
| * |
| * @plannedfor 1.0 |
| * |
| */ |
| public interface INodeAdapterFactory { |
| |
| /** |
| * The primary purpose of an adapter factory is to create an adapter and |
| * associate it with an INodeNotifier. This adapt method Method that |
| * returns the adapter associated with the given object. The |
| * implementation of this method should call addAdapter on the adapted |
| * object with the correct instance of the adapter, if appropriate. |
| * |
| * Note: the instance of the adapter returned may be a singleton or not |
| * ... depending on the needs of the INodeAdapter ... but in general it is |
| * recommended for an adapter to be stateless, so the efficiencies of a |
| * singleton can be gained. |
| * |
| * @param object |
| * the node notifier to be adapted |
| */ |
| INodeAdapter adapt(INodeNotifier object); |
| |
| /** |
| * Unlike clone, this method may or may not return the same instance, such |
| * as in the case where the IAdapterFactory is intended to be a singleton. |
| * |
| * @return an instance of this adapter factory. |
| */ |
| public INodeAdapterFactory copy(); |
| |
| /** |
| * isFactoryForType is called by infrastructure to decide if this adapter |
| * factory is apporiate to use for an adapter request that specifies |
| * 'type'. |
| * |
| * @param type - |
| * same object used to identify/request adapters. |
| * @return true if factory is appropriate for type, false otherwise. |
| */ |
| boolean isFactoryForType(Object type); |
| |
| /** |
| * release is called by infrastructure when the factory registry is |
| * released (which is done when a structured model is released). This |
| * intened for the factory to be allowed to clean up any state information |
| * it may have. |
| * |
| * Note: while not recommended, due to performance reasons, if individual |
| * adapters need some cleanup (or need to be released) it is (typically) |
| * the responsibility of the adapter factory to track them, and initiate |
| * what ever clean up is needed. In other works, cleanup at the adatper |
| * level is not provided by infrastructure. |
| */ |
| public void release(); |
| |
| } |