Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/metadataprocessors/internal/MetaDataEnabledFeatureRegistry.java')
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/metadataprocessors/internal/MetaDataEnabledFeatureRegistry.java177
1 files changed, 0 insertions, 177 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/metadataprocessors/internal/MetaDataEnabledFeatureRegistry.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/metadataprocessors/internal/MetaDataEnabledFeatureRegistry.java
deleted file mode 100644
index d67b5375b..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/metadataprocessors/internal/MetaDataEnabledFeatureRegistry.java
+++ /dev/null
@@ -1,177 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 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:
- * Gerry Kessler/Oracle - initial API and implementation
- *
- ********************************************************************************/
-
-package org.eclipse.jst.jsf.metadataprocessors.internal;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.InvalidRegistryObjectException;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jst.jsf.core.internal.JSFCorePlugin;
-import org.eclipse.jst.jsf.metadataprocessors.IType;
-
-/**
- * Registry of <code>AbstractMetaDataEnabledType</code>s loaded from
- * the <code>MetaDataEnabledFeatures</code> extension point
- *
- * A map of features keyed by type id
- *
- */
-public class MetaDataEnabledFeatureRegistry{
- private static final String EXTPTID = "MetaDataEnabledFeatures"; //$NON-NLS-1$
- private Map<String, List<IMetaDataEnabledFeatureExtension>> featuresMap;
- private Map<String, Class> typeCacheMap;
- private static MetaDataEnabledFeatureRegistry INSTANCE;
-
- /**
- * @return the singleton instance of the MetaDataEnabledFeatureRegistry
- */
- public static synchronized MetaDataEnabledFeatureRegistry getInstance(){
- if (INSTANCE == null){
- INSTANCE = new MetaDataEnabledFeatureRegistry();
- }
- return INSTANCE;
- }
-
- private MetaDataEnabledFeatureRegistry(){
- featuresMap = new HashMap<String, List<IMetaDataEnabledFeatureExtension>>();
- typeCacheMap = new HashMap<String, Class>();
- readRegistry();
- }
-
- /**
- * Reads the MetaDataEnabledFeatures extensions into a registry
- */
- protected void readRegistry() {
- try {
- IExtensionPoint point = Platform.getExtensionRegistry().getExtensionPoint(JSFCorePlugin.PLUGIN_ID, EXTPTID);
- IExtension[] extensions = point.getExtensions();
- for (int i=0;i < extensions.length;i++){
- IExtension ext = extensions[i];
- for (int j=0;j < ext.getConfigurationElements().length;j++){
- final String bundleId = ext.getConfigurationElements()[j].getContributor().getName();
- final String id = ext.getConfigurationElements()[j].getAttribute("typeid"); //$NON-NLS-1$
- final String klass = ext.getConfigurationElements()[j].getAttribute("class"); //$NON-NLS-1$
- registerFeature(bundleId, id, klass);
- }
- }
- } catch (InvalidRegistryObjectException e) {
- JSFCorePlugin.log(e, "Unable to read " + JSFCorePlugin.PLUGIN_ID + EXTPTID + " registry"); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
-
- /**
- * Create {@link IMetaDataEnabledFeatureExtension}s and add to registry
- * @param bundleID
- * @param typeId
- * @param klass
- */
- protected void registerFeature(String bundleID, String typeId, String klass){
- IMetaDataEnabledFeatureExtension aFeature = new MetaDataEnabledFeatureExtension(bundleID, typeId, klass);
- if (canCreateTypeForFeatureExtension(aFeature)){
- if (!featuresMap.containsKey(typeId)){
- List list = new ArrayList();
- list.add(aFeature);
- featuresMap.put(typeId, list);
- }
- else {
- List list = featuresMap.get(typeId);
- list.add(aFeature);
- }
- }
- }
-
-
- private boolean canCreateTypeForFeatureExtension(IMetaDataEnabledFeatureExtension feature) {
- if (! typeCacheMap.containsKey(feature.getTypeID())){
- IType type = AttributeValueRuntimeTypeRegistry.getInstance().getType(feature.getTypeID());
- if (type != null){
- Class typeClass = AttributeValueRuntimeTypeFactory.getInstance().getClassForType(type);
- typeCacheMap.put(feature.getTypeID(), typeClass);
- }
- else
- return false;
- }
- return typeCacheMap.get(feature.getTypeID()) != null;
- }
-
- /**
- * @param typeId
- * @return List of <code>AbstractMetaDataEnabledRuntimeTypeExtensions</code>
- * for a given by type id
- *
- * TODO: make more efficient... no need to keep calculating features for subtypes.
- */
- public List<IMetaDataEnabledFeatureExtension> getFeatures(String typeId) {
-
- if (!featuresMap.containsKey(typeId))
- featuresMap.put(typeId,new ArrayList());
-
- //copy current featuresMapped to typeId into return list
- List<IMetaDataEnabledFeatureExtension> srcList = featuresMap.get(typeId);
- List<IMetaDataEnabledFeatureExtension> ret = new ArrayList<IMetaDataEnabledFeatureExtension>(srcList.size());
- copy(ret, srcList);
-
- List subs = getFeatureExtensionsForMatchingSubclass(typeId);
- for (Iterator<IMetaDataEnabledFeatureExtension> it=subs.iterator();it.hasNext();){
- IMetaDataEnabledFeatureExtension featureExt = it.next();
- if (!ret.contains(featureExt))
- ret.add(featureExt);
- }
- return ret;
-
- }
-
- private void copy(List<IMetaDataEnabledFeatureExtension> destList,
- List<IMetaDataEnabledFeatureExtension> srcList) {
- for (Iterator<IMetaDataEnabledFeatureExtension> it=srcList.iterator();it.hasNext();){
- destList.add(it.next());
- }
- }
-
- /**
- * If the feature adapter is mapped to a type which is a superclass of the type of interest, then the feature adapter is an extension of that type
- * @param typeId
- * @return list of IMetaDataEnabledFeatureExtension
- */
- private List<IMetaDataEnabledFeatureExtension> getFeatureExtensionsForMatchingSubclass(String typeId) {
- IType type = AttributeValueRuntimeTypeRegistry.getInstance().getType(typeId);
- Class typeClass = AttributeValueRuntimeTypeFactory.getInstance().getClassForType(type);
-
- List<IMetaDataEnabledFeatureExtension> ret = new ArrayList<IMetaDataEnabledFeatureExtension>();
- // loop thru all of the type classes mapped to feature adapters that are subclasses of the type
- for (Iterator it=typeCacheMap.keySet().iterator();it.hasNext();){
- String featureTypeId = (String)it.next();
- Class featureTypeClass = typeCacheMap.get(featureTypeId);
- try {
-// if (featureTypeClass.equals(typeClass)){
-// ret.add(featureTypeClass);
-// }
-// else
- if (typeClass.asSubclass(featureTypeClass) != null) {
- ret.addAll(featuresMap.get(featureTypeId));
- }
- } catch (ClassCastException e) {//
- }
-
- }
- return ret;
- }
-
-
-}

Back to the top