diff options
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/StandardMetaDataFileRegistry.java')
-rw-r--r-- | jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/StandardMetaDataFileRegistry.java | 311 |
1 files changed, 0 insertions, 311 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/StandardMetaDataFileRegistry.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/StandardMetaDataFileRegistry.java deleted file mode 100644 index 4cb134e33..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/StandardMetaDataFileRegistry.java +++ /dev/null @@ -1,311 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002, 2006, 2007 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.common.metadata.internal; - -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStream; -import java.net.URISyntaxException; -import java.net.URL; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.MissingResourceException; -import java.util.ResourceBundle; - -import org.eclipse.core.runtime.FileLocator; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Path; -import org.eclipse.core.runtime.Platform; -import org.eclipse.emf.common.util.EList; -import org.eclipse.emf.common.util.URI; -import org.eclipse.jface.resource.ImageDescriptor; -import org.eclipse.jst.jsf.common.JSFCommonPlugin; -import org.eclipse.jst.jsf.common.metadata.Model; -import org.eclipse.jst.jsf.common.metadata.Trait; -import org.eclipse.jst.jsf.common.metadata.query.TaglibDomainMetaDataQueryHelper; - - -/** - * Registry of standard metadata files - */ -public final class StandardMetaDataFileRegistry { - private Map/*<String, List<IMetaDataSourceModelProvider>>*/ mdFilesMap = new HashMap/*<String, List<IMetaDataSourceModelProvider>>*/(1); - private List/*<IMetaDataSourceModelProvider>*/ EMPTY_LIST = new ArrayList/*<IMetaDataSourceModelProvider>*/(0); - - private static StandardMetaDataFileRegistry reg; - - /** - * @return the singleton instance of the registry - */ - public static StandardMetaDataFileRegistry getInstance() { - if (reg == null){ - reg = new StandardMetaDataFileRegistry(); - } - return reg; - } - - private StandardMetaDataFileRegistry() { - new StandardMetaDataFileRegistryReader(this).readRegistry(); - } - - /** - * @param uri as String - * @return list of standard metadata sources as <code>IMetaDataSourceModelProvider</code>s. - * Returns empty list of no standard metadata files are registered for the given uri. - */ - public synchronized List/*<IMetaDataSourceModelProvider>*/ getStandardMetaDataModelProviders(String uri) { - List/*<IMetaDataSourceModelProvider>*/ theList = (List)mdFilesMap.get(uri); - return theList != null ? theList : EMPTY_LIST ; - } - - /** - * For use by registry reader only - * @param uri - * @param fileInfo - */ - public synchronized void addStandardMetaDataFileInfo(String uri, IStandardMetaDataSourceInfo fileInfo) { - List/*<IMetaDataSourceModelProvider>*/ providers = (List) mdFilesMap.get(uri); - if (providers == null) { - providers = new ArrayList/*<IStandardMetaDataSourceInfo>*/(); - mdFilesMap.put(uri, providers); - } - providers.add(new StandardMetaDataFilesProvider(fileInfo)); - } - -/** - * Internal implementation of IMetaDataSourceModelProvider for "standard" metadata sources - * - */ -class StandardMetaDataFilesProvider implements IMetaDataSourceModelProvider { - - private org.eclipse.jst.jsf.common.metadata.internal.IStandardMetaDataSourceInfo info; - private Object model; - private IMetaDataLocator locator; - private StandardMetaDataSourceFileLocator fileLocator = null; - - /** - * Constructor - * @param info - */ - StandardMetaDataFilesProvider(IStandardMetaDataSourceInfo info){ - this.info = info; - } - - private StandardMetaDataSourceFileLocator getFileLocator(){ - if (fileLocator == null){ - if (info.getLocatorClassname() == null){ - fileLocator = new PluginRelativeStandardMetaDataSourceFileLocator(); - } - else { - Class klass = JSFCommonPlugin.loadClass(info.getLocatorClassname(), info.getBundleId()); - try { - fileLocator = (StandardMetaDataSourceFileLocator)klass.newInstance(); - } catch (InstantiationException e) { - JSFCommonPlugin.log(IStatus.ERROR, "InstantiationException: StandardMetaDataFilesProvider.getFileLocator()", e); //$NON-NLS-1$ - } catch (IllegalAccessException e) { - JSFCommonPlugin.log(IStatus.ERROR, "IllegalAccessException: StandardMetaDataFilesProvider.getFileLocator()", e); //$NON-NLS-1$ - } - } - if (fileLocator != null) - fileLocator.setFileInfo(info); - } - return fileLocator; - } - - private InputStream getInputStream() throws IOException { - if (getFileLocator() != null){ - return getFileLocator().getInputStream(); - } - return null; - - } - - private URI getMDFileURI() - { - try - { - StandardMetaDataSourceFileLocator fileLocator2 = getFileLocator(); - if (fileLocator2 != null) - { - final URL url = fileLocator2.getURL(); - if (url == null) - { - JSFCommonPlugin.log(new RuntimeException(), - "Couldn't locate meta-data file for " - + fileLocator2.getFileInfo() - .getLocation()); - return null; - } - - java.net.URI uri = url.toURI(); - return URI.createURI(uri.toString()); - } - } - catch (URISyntaxException e) - { - JSFCommonPlugin.log(IStatus.ERROR, "Metadata File Load Error: " - + getFileLocator().getFileInfo().toString() - + ": URISyntaxException: " + e.getMessage()); - } - return null; - } - - /* (non-Javadoc) - * @see org.eclipse.jst.jsf.common.metadata.internal.IMetaDataSourceModelProvider#getSourceModel() - */ - public Object getSourceModel() { - if (model != null) - return model; - - InputStream inputStream = null; - try { - URI uri = getMDFileURI(); - inputStream = getInputStream(); - if (inputStream != null && uri != null){ - EList contents = StandardModelFactory.getInstance().loadStandardFileResource(inputStream, this, uri); - //check to see if this is a Model - if (contents != null && !contents.isEmpty() && - contents.get(0) instanceof Model){ - model = contents.get(0); - ((Model)model).setSourceModelProvider(this); - } - } - } catch (FileNotFoundException e){ - JSFCommonPlugin.log(IStatus.ERROR, e.getLocalizedMessage()); - } catch (IOException e) { - JSFCommonPlugin.log(IStatus.ERROR,"IOException(1): StandardMetaDataFilesProvider.getSourceModel():"+getModelName(), e); //$NON-NLS-1$ - } finally { - if (inputStream != null){ - try { - inputStream.close(); - } catch (IOException e) { - JSFCommonPlugin.log( IStatus.ERROR,"IOException (2): StandardMetaDataFilesProvider.getSourceModel():"+getModelName(), e); //$NON-NLS-1$ - } - } - } - return model; - } - - private String getModelName() { - return info.toString(); - } - - /* (non-Javadoc) - * @see org.eclipse.jst.jsf.common.metadata.internal.IMetaDataSourceModelProvider#getLocator() - */ - public IMetaDataLocator getLocator() { - return locator; - } - - /* (non-Javadoc) - * @see org.eclipse.jst.jsf.common.metadata.internal.IMetaDataSourceModelProvider#setLocator(org.eclipse.jst.jsf.common.metadata.internal.IMetaDataLocator) - */ - public void setLocator(IMetaDataLocator locator) { - this.locator = locator; - } - - /* (non-Javadoc) - * @see org.eclipse.jst.jsf.common.metadata.internal.IMetaDataSourceModelProvider#getResourceBundle() - */ - private ResourceBundle internalGetResourceBundle() { - if (getFileLocator() != null){ - try { - return fileLocator.getResourceBundle(); - } catch (MissingResourceException e) { - JSFCommonPlugin.log(IStatus.ERROR, "InternalGetResourceBundle1", e); - } catch (IOException e) { - JSFCommonPlugin.log(IStatus.ERROR, "InternalGetResourceBundle2", e); - } - } - return null; - } - - public Object getAdapter(Class klass) { - final StandardMetaDataFilesProvider mdp = this; - if (klass == IImageDescriptorProvider.class){ - return new IImageDescriptorProvider(){ - String imageBase; - public ImageDescriptor getImageDescriptor(String imagePath) { - imagePath = appendImageBase(imagePath); - String bundleID = mdp.getFileLocator().getFileInfo().getBundleId(); - URL url = FileLocator.find(Platform.getBundle(bundleID), new Path(imagePath), null); - return ImageDescriptor.createFromURL(url); - } - private String appendImageBase(String imagePath) { - return getImageBase() + imagePath; - } - - private String getImageBase(){ - if (imageBase == null){ - Model aModel = (Model)getSourceModel(); - Trait t = TaglibDomainMetaDataQueryHelper.getTrait(aModel, "images-base-path"); //$NON-NLS-1$ - if (t == null){ - imageBase = ""; //$NON-NLS-1$ - } else { - imageBase = TraitValueHelper.getValueAsString(t); - if (imageBase != null && imageBase.length() > 0){ - imageBase = imageBase +"/"; //$NON-NLS-1$ - } - } - } - return imageBase; - } - - }; - - } else if (klass == IResourceBundleProvider.class) { - return new IResourceBundleProvider(){ - - public ResourceBundle getResourceBundle() { - return mdp.internalGetResourceBundle(); - } - - }; - - } else if (klass == IClassLoaderProvider.class){ - return new IClassLoaderProvider(){ - - public Class loadClass(String className) { - String bundleID = mdp.getFileLocator().getFileInfo().getBundleId(); - try { - return Platform.getBundle(bundleID).loadClass(className); - } catch (ClassNotFoundException e) { - return null; - } - } - - }; - } else if (klass == IResourceURLProvider.class) { - return new IResourceURLProvider() { - - public URL getResourceURL(String resourcePath) { - URL resourceURL = null; - String bundleID = mdp.getFileLocator().getFileInfo().getBundleId(); - try { - resourceURL = FileLocator.resolve(Platform.getBundle(bundleID).getResource(resourcePath)); - } catch (IOException ioe) { - //do nothing, will return null resourceURL - } - return resourceURL; - } - - }; - } - return null; - } - -} -} |