diff options
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/DecoratableExtensionFactory.java')
-rw-r--r-- | jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/DecoratableExtensionFactory.java | 115 |
1 files changed, 0 insertions, 115 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/DecoratableExtensionFactory.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/DecoratableExtensionFactory.java deleted file mode 100644 index 249316ffb..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/DecoratableExtensionFactory.java +++ /dev/null @@ -1,115 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle Corporation. - * 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: - * Cameron Bateman/Oracle - initial API and implementation - * - ********************************************************************************/ - -package org.eclipse.jst.jsf.designtime.internal; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.eclipse.core.runtime.IConfigurationElement; -import org.osgi.framework.Bundle; - -/** - * Factory for extensions that include a runtime class for which they decorate. - * - * @author cbateman - * - * @param <EXTENSIONTYPE> - */ -public class DecoratableExtensionFactory<EXTENSIONTYPE> extends - BasicExtensionFactory<EXTENSIONTYPE> -{ - private static final String DECORATOR_ATTRIBUTE_NAME = "forRuntimeClass"; //$NON-NLS-1$ - private final Map<String, List<String>> _forNameToId; - - /** - * @param bundle - * @param extName - * @param elementName - * @param alwaysPerProject - */ - public DecoratableExtensionFactory(final Bundle bundle, - final String extName, final String elementName, final boolean alwaysPerProject) - { - super(bundle, extName, elementName, alwaysPerProject); - _forNameToId = new HashMap<String, List<String>>(); - } - - /** - * @param name - * @return a canonically sorted list of ids of extensions registered by the - * name. - */ - public List<String> getIdsForName(final String name) - { - List<String> ids = _forNameToId.get(name); - if (ids == null) - { - ids = Collections.EMPTY_LIST; - } - return ids; - } - - /** - * @return the number of runtime resolvers for which there is at least one - * declarative variable resolver registered. - */ - public int getNumDecorativeResolvers() - { - return _forNameToId.size(); - } - - @Override - protected Map<String, ExtensionData<EXTENSIONTYPE>> loadRegisteredExtensions() - { - Map<String, ExtensionData<EXTENSIONTYPE>> extensions = super - .loadRegisteredExtensions(); - - // canonically sort forName's - for (final Map.Entry<String, List<String>> entry : _forNameToId - .entrySet()) - { - Collections.sort(entry.getValue()); - } - - return extensions; - } - - - @Override - protected ExtensionData processExtension(IConfigurationElement element, boolean alwaysPerProject) - { - final ExtensionData data = super.processExtension(element, alwaysPerProject); - final String forRuntimeClass = element - .getAttribute(DECORATOR_ATTRIBUTE_NAME); - if (forRuntimeClass != null && !"".equals(forRuntimeClass.trim())){ //$NON-NLS-1$ - addRuntimeClassMapping(data.getId(), forRuntimeClass); - } - return data; - } - - private void addRuntimeClassMapping(final String id, - final String forRuntimeClass) - { - List mappings = _forNameToId.get(forRuntimeClass); - - if (mappings == null) - { - mappings = new ArrayList<String>(2); - _forNameToId.put(forRuntimeClass, mappings); - } - mappings.add(id); - } -} |