diff options
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/contentmodel/annotation/internal/CMAnnotationFileRegistry.java')
-rw-r--r-- | jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/contentmodel/annotation/internal/CMAnnotationFileRegistry.java | 191 |
1 files changed, 0 insertions, 191 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/contentmodel/annotation/internal/CMAnnotationFileRegistry.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/contentmodel/annotation/internal/CMAnnotationFileRegistry.java deleted file mode 100644 index 58d8ed6bc..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/contentmodel/annotation/internal/CMAnnotationFileRegistry.java +++ /dev/null @@ -1,191 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002, 2006 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 - Initial API and implementation - * Jens Lukowski/Innoopract - initial renaming/restructuring - * Gerry Kessler/Oracle - code borrowed and repurposed for JSF subproject - * - *******************************************************************************/ -package org.eclipse.jst.jsf.contentmodel.annotation.internal; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import org.eclipse.core.runtime.IStatus; -import org.eclipse.jst.jsf.common.JSFCommonPlugin; -import org.eclipse.jst.jsf.contentmodel.annotation.ICMAnnotationSourceFileInfo; -import org.eclipse.osgi.util.NLS; - -/** - * This internal class is used to associate one or more annotation files with a grammar - * file mapped by a key (uri). - * - * Using the CMAnnotationFileRegistryReader, extenders of <code>org.eclipse.jst.jsf.contentmodel.annotations.annotationFiles</code> are loaded - * into the annotationFilesMap keyed by uri. There can be multiple annotationFiles mapped to the same uri. - * - * This registry should only be accessed by clients using the <code>org.eclipse.jst.jsf.contentmodel.annotation.CMAnnotationHelper</code>. - * Only when the system attempts to access an annotation for a content model, will the file be parsed and cached. - * - * When queried, CMAnnotationPropertyValue objects are returned for each named property found in each annotation file for a particular uri. - * - * also see org.eclipse.jst.jsf.contentmodel.annotations.annotationFiles extension-point - * @see CMAnnotationFileRegistryReader - * @see CMAnnotationMap - * @see org.eclipse.jst.jsf.contentmodel.annotation.ICMAnnotationSourceFileInfo - * - * @deprecated see common.metadata package - */ -public final class CMAnnotationFileRegistry { - //all annotation files registered using "org.eclipse.jst.jsf.contentmodel.annotations.annotationFiles" ext-pt. and keyed by uri. - private Map annotationFilesMap = new HashMap(1); - //will return list of CMAnnotationMap (parsed annotation files) objects keyed by uri - private Map parsedFilesMap = new HashMap(1); - - private static CMAnnotationFileRegistry reg; - - private static final boolean DISABLED = true; - - /** - * @return return the singleton instance of the registry - */ - public static CMAnnotationFileRegistry getInstance() { - if (reg == null){ - reg = new CMAnnotationFileRegistry(); - } - return reg; - - } - - //constructor reads the annotationFile registry and populates the annotationFilesMap - private CMAnnotationFileRegistry() { - if (!(DISABLED)) - new CMAnnotationFileRegistryReader(this).readRegistry(); - } - - private synchronized List getAnnotationFilesInfos(String uri) { - List theList = (List) annotationFilesMap.get(uri); - return theList != null ? theList : new ArrayList(); - } - - /** - * For use by registry reader only - * @param uri - * @param fileInfo - */ - public synchronized void addAnnotationFileInfo(String uri, ICMAnnotationSourceFileInfo fileInfo) { - List fileInfos = (List) annotationFilesMap.get(uri); - if (fileInfos == null) { - fileInfos = new ArrayList(); - annotationFilesMap.put(uri, fileInfos); - } - fileInfos.add(fileInfo); - } - - private synchronized void addParsedFileToMap(String uri, CMAnnotationMap map) { - List maps = (List) parsedFilesMap.get(uri); - if (maps == null) { - maps = new ArrayList(); - parsedFilesMap.put(uri, maps); - } - maps.add(map); - } - - /** - * Return list of CMAnnotationMaps for a given uri. - * By calling this method, unparsed annotation files for the given - * uri will be parsed. - * - * @param uri - * @return List of CMAnnotationMaps - */ - public synchronized List getAnnotationMaps(String uri) { - if (DISABLED){ - JSFCommonPlugin.log(IStatus.ERROR, "Attempted metadata access using CMAnnotationFiles for uri: "+uri+". Use org.eclipse.jst.jsf.common.metadata, instead." ); - return Collections.EMPTY_LIST; - } - - List list = (List)parsedFilesMap.get(uri); - if (list == null){ - loadAnnotationsForGrammar(uri); - list = (List)parsedFilesMap.get(uri); - } - return list; - } - - - /** - * Does this bundle define an annotationFile extension for the given uri. - * - * @param bundleId - * @param uri - * @return boolean - */ - public boolean hasAnnotations(String bundleId, String uri) { -// if (DISABLED){ -// -// } - List maps = (List)annotationFilesMap.get(uri); - if (maps == null || maps.size() ==0) - return false; - - for (int i=0;i<maps.size();i++){ - if (((ICMAnnotationSourceFileInfo)maps.get(i)).getBundleId().equals(bundleId)) - return true; - } - return false; - } - /** - * Are there any annotationFile extensions defined for the given uri. - * @param uri - * @return boolean - */ - public boolean hasAnnotations(String uri){ - if (DISABLED){ - JSFCommonPlugin.log(IStatus.ERROR, "Attempted metadata access using CMAnnotationFiles for uri: "+uri+". Use org.eclipse.jst.jsf.common.metadata, instead." ); - return false; - } - if (annotationFilesMap.get(uri) != null) - return true; - return false; - } - - private boolean areAnnotationsParsed(String uri) { - if (hasAnnotations(uri)){ - if (parsedFilesMap.get(uri) != null) - return true; - } - return false; - } - - private void loadAnnotationsForGrammar(String uri) { - if (areAnnotationsParsed(uri)) - return; - - if (DISABLED) - return; - - List annotationFiles = getAnnotationFilesInfos(uri); - for (Iterator i = annotationFiles.iterator(); i.hasNext();) { - try { - CMAnnotationFileInfo annotationFileInfo = (CMAnnotationFileInfo) i.next(); - CMAnnotationMap map = new CMAnnotationMap(annotationFileInfo); - CMAnnotationFileParserHelper parserHelper = new CMAnnotationFileParserHelper(); - parserHelper.parse(map); - addParsedFileToMap(uri, map); - } - catch (Exception e) { - JSFCommonPlugin.log(e, NLS.bind(Messages.CMAnnotationFileRegistry_load_error, new String[]{uri})); - } - } - } - -} |