diff options
Diffstat (limited to 'plugins/org.eclipse.jem/mofjava/org/eclipse/jem/internal/java/adapters/JavaReflectionAdapterFactory.java')
-rw-r--r-- | plugins/org.eclipse.jem/mofjava/org/eclipse/jem/internal/java/adapters/JavaReflectionAdapterFactory.java | 172 |
1 files changed, 0 insertions, 172 deletions
diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/internal/java/adapters/JavaReflectionAdapterFactory.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/internal/java/adapters/JavaReflectionAdapterFactory.java deleted file mode 100644 index 381376bdb..000000000 --- a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/internal/java/adapters/JavaReflectionAdapterFactory.java +++ /dev/null @@ -1,172 +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 - *******************************************************************************/ -package org.eclipse.jem.internal.java.adapters; -/* - - - */ -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import org.eclipse.emf.common.notify.Adapter; -import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.notify.Notifier; -import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.EPackage; - -import org.eclipse.jem.java.JavaRefPackage; -public abstract class JavaReflectionAdapterFactory extends AdapterFactoryImpl { - // Maintain a mapping of the source objects to the adaptors which have - // relfected from them. This allows a flush operation to force those - // adapters to re-reflect. - protected HashMap reflected = new HashMap(); - /** - * Key for the type of adapters that this factory creates. (Used in isFactoryForType()). - */ - public static final String TYPE_KEY = ReadAdaptor.TYPE_KEY; - protected boolean isBusyIteratingReflected = false; - protected Map registerQueue; - protected List unregisterQueue; -/** - * JavaReflectionAdapterFactory constructor comment. - */ -public JavaReflectionAdapterFactory() { - super(); -} -public Adapter createAdapter(Notifier target) { - ReflectionAdaptor adapter = null; - EObject object = (EObject) target; - JavaRefPackage pack = getJavaRefPackage(); - if (object.eClass() == pack.getJavaClass()) - adapter = createJavaClassAdaptor(target); - else - if (object.eClass() == pack.getArrayType()) - adapter = createArrayTypeAdaptor(target); - else - if (object.eClass() == pack.getMethod()) - adapter = createJavaMethodAdaptor(target); - else - if (object.eClass() == pack.getField()) - adapter = createJavaFieldAdaptor(target); - return adapter; -} - -protected ReflectionAdaptor createArrayTypeAdaptor(Notifier target) { - return new JavaArrayTypeReflectionAdapter(target); -} - -protected abstract ReflectionAdaptor createJavaClassAdaptor(Notifier target) ; -protected abstract ReflectionAdaptor createJavaFieldAdaptor(Notifier target) ; -protected abstract ReflectionAdaptor createJavaMethodAdaptor(Notifier target) ; -// Flush the adapter for a source object -public Notification disAssociateSource(String source) { - return disAssociateSource(source, true); -} - -public Notification disAssociateSource(String source, boolean doNotify) { - JavaReflectionAdaptor a = (JavaReflectionAdaptor) reflected.get(source); - Notification notification = null; - if (a != null) { - if (doNotify) - a.releaseSourceType(); - else - notification = a.releaseSourceTypeNoNotification(); - } - return notification; -} -public void flushAll() {} -// Flush the adapter for a source object -public void flushReflection(String source) {} -protected JavaRefPackage getJavaRefPackage() { - return (JavaRefPackage) EPackage.Registry.INSTANCE.getEPackage(JavaRefPackage.eNS_URI); -} -public void registerReflection(String source, ReflectionAdaptor adapter) { - if (isBusyIteratingReflected) { - if (registerQueue == null) - registerQueue = new HashMap(); - registerQueue.put(source, adapter); - } else - reflected.put(source, adapter); -} -public void unregisterReflection(String source) { - if (isBusyIteratingReflected) { - if (unregisterQueue == null) - unregisterQueue = new ArrayList(); - unregisterQueue.add(source); - } else - reflected.remove(source); -} -public void disAssociateSourcePlusInner(String source) { - disAssociateSourcePlusInner(source, true); -} - -public Notification disAssociateSourcePlusInner(String source, boolean doNotify) { - isBusyIteratingReflected = true; - Notification notification = null; - try { - String innerName = source + '$'; - Iterator it = reflected.entrySet().iterator(); - Map.Entry entry; - String key; - JavaReflectionAdaptor adaptor; - while (it.hasNext()) { - entry = (Map.Entry) it.next(); - key = (String) entry.getKey(); - if (key.equals(source) || key.startsWith(innerName)) { - adaptor = (JavaReflectionAdaptor) reflected.get(key); - if (adaptor != null) { - if (doNotify) - adaptor.releaseSourceType(); - else - notification = adaptor.releaseSourceTypeNoNotification(); - } - } - } - } finally { - finishedIteratingReflected(); - } - return notification; -} - -protected void finishedIteratingReflected() { - isBusyIteratingReflected = false; - if (unregisterQueue != null && !unregisterQueue.isEmpty()) { - for (int i = 0; i < unregisterQueue.size(); i++) { - reflected.remove(unregisterQueue.get(i)); - } - unregisterQueue.clear(); - } - if (registerQueue != null && !registerQueue.isEmpty()) { - Iterator it = registerQueue.entrySet().iterator(); - Map.Entry entry; - while (it.hasNext()) { - entry = (Map.Entry) it.next(); - reflected.put(entry.getKey(), entry.getValue()); - } - registerQueue.clear(); - } -} -public boolean isFactoryForType(Object type) { - return TYPE_KEY.equals(type); -} -} - - - - - - - - |