/** * @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(); } } } }
/** * @see PageDirectiveAdapter#adapt(INodeNotifier, Object) */ public INodeAdapter adapt(INodeNotifier notifier, Object type) { INodeAdapter result = null; // if embeddedContentType hasn't been set, // then we can not adapt it. if (embeddedTypeHandler != null) { if (embeddedFactoryRegistry != null) { Iterator iterator = embeddedFactoryRegistry.iterator(); INodeAdapterFactory factory = null; while (iterator.hasNext()) { factory = (INodeAdapterFactory) iterator.next(); if (factory.isFactoryForType(type)) { result = factory.adapt(notifier); break; } } } } return result; }
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); } } } }
public List getAdapterFactories() { List factories = super.getAdapterFactories(); /* * Replace the default JSP model query by using our own factory */ Iterator i = factories.iterator(); while (i.hasNext()) { if (((INodeAdapterFactory) i.next()).isFactoryForType(ModelQueryAdapter.class)) { i.remove(); } } factories.add(new ModelQueryAdapterFactoryForTag()); return factories; } }
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; }
private void validate(IReporter reporter, IFile file, IDOMModel model) { if (file == null || model == null) return; // error IDOMDocument document = model.getDocument(); if (document == null) return; // error // This validator currently only handles validating HTML content in // JSP if (hasHTMLFeature(document)) { INodeAdapterFactory factory = HTMLValidationAdapterFactory.getInstance(); ValidationAdapter adapter = (ValidationAdapter) factory.adapt(document); if (adapter == null) return; // error HTMLValidationReporter rep = getReporter(reporter, file, model); rep.clear(); adapter.setReporter(rep); adapter.validate(document); } }
public void release() { if (embeddedTypeHandler != null) { if (embeddedFactoryRegistry != null) { Iterator iterator = embeddedFactoryRegistry.iterator(); INodeAdapterFactory factory = null; while (iterator.hasNext()) { factory = (INodeAdapterFactory) iterator.next(); factory.release(); } } // pa_TODO: possibly need to release here... // or "uninitializeFactoryRegistry" // initializeFactoryRegistry was called from JSPModelLoader embeddedTypeHandler = null; } }
public void setEmbeddedType(EmbeddedTypeHandler handler) { // if really the same handler, no need for further processing if (embeddedTypeHandler == handler) { return; } // then one exists, and the new one is truely different, so we need to // release and remove current factories if (embeddedTypeHandler != null) { Iterator list = embeddedFactoryRegistry.iterator(); while (list.hasNext()) { INodeAdapterFactory factory = (INodeAdapterFactory) list.next(); factory.release(); } embeddedFactoryRegistry.clear(); } embeddedTypeHandler = handler; // when the handler is set, "transfer" its factories to our own list. // note: our own list may also be added to else where, such as on // "editor side". if (embeddedTypeHandler != null) { Iterator iterator = embeddedTypeHandler.getAdapterFactories().iterator(); while (iterator.hasNext()) { INodeAdapterFactory factory = (INodeAdapterFactory) iterator.next(); embeddedFactoryRegistry.add(factory); } } }
public void uninitializeFactoryRegistry(FactoryRegistry registry) { Assert.isNotNull(registry); // ISSUE: should these factories be released? Or just // removed from this registry, because we are getting ready to // re-add them? INodeAdapterFactory factory = null; if (!registry.contains(DocumentTypeAdapter.class)) { factory = registry.getFactoryFor(DocumentTypeAdapter.class); factory.release(); registry.removeFactory(factory); } if (!registry.contains(ModelParserAdapter.class)) { factory = registry.getFactoryFor(ModelParserAdapter.class); factory.release(); registry.removeFactory(factory); } if (!registry.contains(IStyleSelectorAdapter.class)) { factory = registry.getFactoryFor(IStyleSelectorAdapter.class); factory.release(); registry.removeFactory(factory); } if (!registry.contains(IStyleSheetAdapter.class)) { factory = registry.getFactoryFor(IStyleSheetAdapter.class); factory.release(); registry.removeFactory(factory); } }