diff options
Diffstat (limited to 'bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/propagate')
2 files changed, 0 insertions, 257 deletions
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/propagate/PropagatingAdapterFactoryImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/propagate/PropagatingAdapterFactoryImpl.java deleted file mode 100644 index 992d60e7ca..0000000000 --- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/propagate/PropagatingAdapterFactoryImpl.java +++ /dev/null @@ -1,113 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 2004 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.xml.core.internal.propagate; - - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import org.eclipse.wst.sse.core.internal.PropagatingAdapter; -import org.eclipse.wst.sse.core.internal.PropagatingAdapterFactory; -import org.eclipse.wst.sse.core.internal.provisional.AbstractAdapterFactory; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory; -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; - - -/** - * The PropagatingAdapterFactory is part of the "adapt on create" mechanism. A - * PropagatingAdapter, once added to a node, will cause proagating adapters to - * be created for all child nodes. A side effect of creating a - * PropagatingAdapter for a node is that is is also creates adapters for and - * adapts the Node for all other registered 'create on adapt' Adapters. This - * other adapters are registered by registering their factories via plugin - * extension point. - */ -public class PropagatingAdapterFactoryImpl extends AbstractAdapterFactory implements PropagatingAdapterFactory { - - private PropagatingAdapter fAdapterInstance; - private List fContributedFactories = null; - - /** - * PropagatingAdapterFactory constructor comment. - */ - public PropagatingAdapterFactoryImpl() { - this(PropagatingAdapter.class, true); - } - - protected PropagatingAdapterFactoryImpl(Object adapterKey, boolean registerAdapters) { // , - super(adapterKey, registerAdapters); - } - - public void addContributedFactories(INodeAdapterFactory factory) { - if (fContributedFactories != null) { - fContributedFactories.add(factory); - } - - } - - /** - * createAdapter method comment. - */ - protected INodeAdapter createAdapter(INodeNotifier target) { - // every notifier get's one of these - // (and the same instance of it) - return getAdapterInstance(); - } - - /** - * Gets the adapterInstance. - * - * @return Returns a PropagatingAdapter - */ - private PropagatingAdapter getAdapterInstance() { - if (fAdapterInstance == null) { - fAdapterInstance = new PropagatingAdapterImpl(); - if (fContributedFactories != null) { - for (int i = 0; i < fContributedFactories.size(); i++) - fAdapterInstance.addAdaptOnCreateFactory((PropagatingAdapterFactory) fContributedFactories.get(i)); - } - } - return fAdapterInstance; - } - - public void release() { - // give the adapter instance a chance to release its factories - getAdapterInstance().release(); - - } - - public void setContributedFactories(ArrayList list) { - fContributedFactories = list; - - } - - public INodeAdapterFactory copy() { - PropagatingAdapterFactory clonedInstance = new PropagatingAdapterFactoryImpl(getAdapterKey(), isShouldRegisterAdapter()); - // clone this adapters specific list of adapter factories too - if (fContributedFactories != null) { - - Iterator iterator = fContributedFactories.iterator(); - clonedInstance.setContributedFactories(new ArrayList()); - while (iterator.hasNext()) { - INodeAdapterFactory existingFactory = (INodeAdapterFactory) iterator.next(); - clonedInstance.addContributedFactories(existingFactory.copy()); - } - } - return clonedInstance; - } - - - -} diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/propagate/PropagatingAdapterImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/propagate/PropagatingAdapterImpl.java deleted file mode 100644 index f581590c35..0000000000 --- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/propagate/PropagatingAdapterImpl.java +++ /dev/null @@ -1,144 +0,0 @@ -/******************************************************************************* - * 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.xml.core.internal.propagate; - - - -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.wst.sse.core.internal.PropagatingAdapter; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory; -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; -import org.w3c.dom.Document; -import org.w3c.dom.DocumentType; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - - -public class PropagatingAdapterImpl implements PropagatingAdapter { - - private List adaptOnCreateFactories = null; - - /** - * AbstractPropagatingAdapterImpl constructor comment. - */ - public PropagatingAdapterImpl() { - super(); - } - - private void adaptOnCreate(IDOMNode node) { - // give each of the factories a chance to adapt the node, if it - // chooses to - if (adaptOnCreateFactories != null) { - - - synchronized (adaptOnCreateFactories) { - int length = adaptOnCreateFactories.size(); - for (int i = 0; i < length; i++) { - INodeAdapterFactory factory = (INodeAdapterFactory) adaptOnCreateFactories.get(i); - factory.adapt(node); - } - } - - } - - } - - /** - * This mechanism can be made "easier to use" later. - */ - public void addAdaptOnCreateFactory(INodeAdapterFactory factory) { - getAdaptOnCreateFactories().add(factory); - } - - /** - * Gets the adaptOnCreateFactories. - * - * @return Returns a List - */ - public List getAdaptOnCreateFactories() { - if (adaptOnCreateFactories == null) - adaptOnCreateFactories = new ArrayList(); - return adaptOnCreateFactories; - } - - - /** - * @see PropagatingAdapter#initializeForFactory(INodeAdapterFactory, - * INodeNotifier) - */ - public void initializeForFactory(INodeAdapterFactory factory, INodeNotifier node) { - // ISSUE: we are a DOM specific implimentation, - // we should not be. - if (node instanceof IDOMNode) { - IDOMNode xmlNode = (IDOMNode) node; - propagateTo(xmlNode); - } - } - - /** - * Allowing the INodeAdapter to compare itself against the type allows it - * to return true in more than one case. - */ - public boolean isAdapterForType(Object type) { - return type.equals(PropagatingAdapter.class); - } - - private boolean isInteresting(Object newValue) { - return (newValue != null && (newValue instanceof Element || newValue instanceof Document || newValue instanceof DocumentType)); - } - - /** - */ - public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) { - // Issue: We only propagate to Elements ... - // not attributes too! We should careful consider doning all when - // when we improve "adapt on create" design. - if (eventType == INodeNotifier.ADD && isInteresting(newValue)) { - propagateTo((IDOMNode) newValue); - } - } - - private void propagateTo(IDOMNode node) { - // get adapter to ensure its created - node.getAdapterFor(PropagatingAdapter.class); - adaptOnCreate(node); - propagateToChildren(node); - } - - private void propagateToChildren(IDOMNode parent) { - for (Node child = parent.getFirstChild(); child != null; child = child.getNextSibling()) { - propagateTo((IDOMNode) child); - } - } - - /** - * @see PropagatingAdapter#release() - */ - public void release() { - if (adaptOnCreateFactories != null) { - - synchronized (adaptOnCreateFactories) { - int length = adaptOnCreateFactories.size(); - for (int i = 0; i < length; i++) { - INodeAdapterFactory factory = (INodeAdapterFactory) adaptOnCreateFactories.get(i); - factory.release(); - } - } - - } - } - -} |