public Object adapt(Object target, Object type) { Object adapter = target; if (target instanceof Notifier) { adapter = adapt((Notifier) target, type); } if (!(type instanceof Class) || (((Class) type).isInstance(adapter))) { return adapter; } return null; }
private AdapterFactory getFactoryForTypes(Object p, List types) { Map aMap = (Map) adapterFactoriesByPackage.get(p); if (aMap == null) return adaptResourceTypes(types); Iterator factories = aMap.values().iterator(); AdapterFactory factory = null; while (factories.hasNext()) { factory = (AdapterFactory) factories.next(); if (isFactoryForAllTypes(factory, types)) { return factory; } } return null; }
private AdapterFactory getFactoryForType(Object type) { if (type == null) return null; if (type instanceof EObject) return getFactoryForType((EObject) type); Object aProject = ProjectUtilities.getProject(type); if (aProject == null) aProject = NO_PROJECT; AdapterFactory factory = getExistingFactoryForType(aProject, type); if (factory == NULL_FACTORY) return null; else if (factory == null) { factory = findFactoryForType(aProject, type); if (factory == null) addAdapterFactory(aProject, type, NULL_FACTORY); else addAdapterFactory(aProject, type, factory); } return factory; }
private AdapterFactory getFactoryForPackage(Object aProject, EPackage aPackage) { if (aProject == null || aPackage == null) return null; AdapterFactory factory = getExistingFactoryForPackage(aProject, aPackage); if (factory == NULL_FACTORY) return null; else if (factory == null) { try { factory = createAdapterFactory(aProject, aPackage); if (factory == null) addAdapterFactory(aProject, aPackage, NULL_FACTORY); else addAdapterFactory(aProject, aPackage, factory); } catch (RuntimeException re) { Logger.getLogger().logError(re); } } return factory; }
attemptAdaptAgain = false; AdapterFactory delegateAdapterFactory = getFactoryForTypes(p, types); if (delegateAdapterFactory != null) { try { } catch (RuntimeException re) { Logger.getLogger().logError(re); removeFactoryForTypes(p, types); attemptAdaptAgain = true; Class superclass = javaClass.getSuperclass(); if (superclass != null) { result = adapt(p, target, type, failedPackages, javaClass.getSuperclass()); result = adapt(p, target, type, failedPackages, interfaces[i]); if (result != null) { break;
public void dispose() { Iterator iter = allFactories.iterator(); Object factory = null; while (iter.hasNext()) { factory = iter.next(); disposeFactory(factory); } for (Iterator itr = getEnablementIdentifiers().iterator(); itr.hasNext();) { ((IEnablementIdentifier) itr.next()).removeIdentifierListener(this); } if (resourceItemProviderAdapterFactory != null) resourceItemProviderAdapterFactory.removeListener(this); }
private AdapterFactory createAdapterFactory(Object project, List descriptors) { if (descriptors == null || descriptors.isEmpty()) return null; AdapterFactory fact = null; IEnablementIdentifier identifier = null; AdapterFactoryDescriptor desc = null; if (descriptors.size() == 1) { desc = (AdapterFactoryDescriptor) descriptors.get(0); identifier = getIdentifier(project, desc); addListenerIfNecessary(identifier); if (project.equals(NO_PROJECT) || (identifier != null && identifier.isEnabled())) return desc.createInstance(); return null; } List factories = new ArrayList(descriptors.size()); for (int i = 0; i < descriptors.size(); i++) { desc = (AdapterFactoryDescriptor) descriptors.get(i); identifier = getIdentifier(project, desc); addListenerIfNecessary(identifier); if (project.equals(NO_PROJECT) || (identifier != null && identifier.isEnabled())) { fact = desc.createInstance(); if (fact != null) factories.add(fact); } } if (factories.isEmpty()) return null; return new ExtendedComposedAdapterFactory(factories); }
protected boolean isListeningTo(IEnablementIdentifier identifier) { return getEnablementIdentifiers().contains(identifier); }
public void notifyChanged(Notification notification) { //Foward the notification on to all my listeners fireNotifyChanged(notification); }
/** * @param project */ private void removeAdapterFactories(Object project) { adapterFactoriesByType.remove(project); Map aMap = (Map) adapterFactoriesByPackage.remove(project); if (aMap == null) return; Iterator factories = aMap.values().iterator(); Object adapterFactory; while (factories.hasNext()) { adapterFactory = factories.next(); allFactories.remove(adapterFactory); disposeFactory(adapterFactory); } }
private AdapterFactory createAdapterFactory(Object project, EPackage ePackage) { if (ePackage == null) throw new IllegalArgumentException(EMFWorkbenchEditResourceHandler.DynamicAdapterFactory_ERROR_0); return createAdapterFactory(project, AdapterFactoryRegistry.instance().getDescriptors(ePackage, viewID)); }
protected void addListenerIfNecessary(IEnablementIdentifier identifier) { if (identifier == null) return; identifier.addIdentifierListener(this); getEnablementIdentifiers().add(identifier); }
public Adapter adapt(Notifier target, Object type) { Adapter result = null; if (target instanceof EObject) result = adapt((EObject) target, type); else { Object p = ProjectUtilities.getProject(target); if (p == null) p = NO_PROJECT; result = adapt(p, target, type, new HashSet(), target.getClass()); } return result; }
public Adapter adapt(EObject target, Object type) { EClass eClass = target.eClass(); if (eClass == null) return null; EPackage ePackage = eClass.getEPackage(); Adapter result = adapt(target, ePackage, type); if (result == null) { Set failedPackageSet = new HashSet(); failedPackageSet.add(ePackage); Iterator supertypes = eClass.getEAllSuperTypes().iterator(); while (supertypes.hasNext()) { eClass = (EClass) supertypes.next(); if (eClass != null) { ePackage = eClass.getEPackage(); if (failedPackageSet.add(ePackage)) { result = adapt(target, ePackage, type); if (result != null) break; } } } } return result; }