/******************************************************************************* * Copyright (c) 2006, 2007 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: * Oracle - initial API and implementation * ********************************************************************************/ package org.eclipse.jst.jsf.common.metadata.internal; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.util.MissingResourceException; import java.util.ResourceBundle; /** * Used to supply an InputStream to the parser of an annotation * meta-data file and the URL to the resource bundle for a properties file, if any. * * Implementors must provide a zero-argument constructor. * * CURRENTLY INTERNAL... WILL BE MADE API AT SOME POINT * */ public abstract class StandardMetaDataSourceFileLocator { /** * metadata file to locate */ protected IStandardMetaDataSourceInfo fileInfo; /** * Set the <code>IStandardMetaDataSourceInfo</code> for this locator * @param fileInfo */ public final void setFileInfo(IStandardMetaDataSourceInfo fileInfo){ this.fileInfo = fileInfo; } /** * @return the <code>IStandardMetaDataSourceInfo</code> for this locator */ protected final IStandardMetaDataSourceInfo getFileInfo(){ return fileInfo; } /** * Return InputStream to the meta-data source file. * Callers are responsible for closing the stream. * @return InputStream * @throws IOException */ public abstract InputStream getInputStream() throws IOException; /** * Return URL to the meta-data source file. * @return URL or null if cannot find a the file for getFileInfo */ public abstract URL getURL(); /** * Return ResourceBundle for the property files if there are any. Return null if not. * * @return java.util.ResourceBundle * @throws IOException * @throws MissingResourceException */ public abstract ResourceBundle getResourceBundle() throws IOException, MissingResourceException; }