| /* CommandMap.java -- Registry of available command objects. | |
| Copyright (C) 2004, 2005 Free Software Foundation, Inc. | |
| This file is part of GNU Classpath. | |
| GNU Classpath is free software; you can redistribute it and/or modify | |
| it under the terms of the GNU General Public License as published by | |
| the Free Software Foundation; either version 2, or (at your option) | |
| any later version. | |
| GNU Classpath is distributed in the hope that it will be useful, but | |
| WITHOUT ANY WARRANTY; without even the implied warranty of | |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| General Public License for more details. | |
| You should have received a copy of the GNU General Public License | |
| along with GNU Classpath; see the file COPYING. If not, write to the | |
| Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA | |
| 02110-1301 USA. | |
| Linking this library statically or dynamically with other modules is | |
| making a combined work based on this library. Thus, the terms and | |
| conditions of the GNU General Public License cover the whole | |
| combination. | |
| As a special exception, the copyright holders of this library give you | |
| permission to link this library with independent modules to produce an | |
| executable, regardless of the license terms of these independent | |
| modules, and to copy and distribute the resulting executable under | |
| terms of your choice, provided that you also meet, for each linked | |
| independent module, the terms and conditions of the license of that | |
| module. An independent module is a module which is not derived from | |
| or based on this library. If you modify this library, you may extend | |
| this exception to your version of the library, but you are not | |
| obligated to do so. If you do not wish to do so, delete this | |
| exception statement from your version. */ | |
| package javax.activation; | |
| /** | |
| * Registry of command objects available to the system. | |
| * | |
| * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a> | |
| * @version 1.1 | |
| */ | |
| public abstract class CommandMap | |
| { | |
| /* Class scope */ | |
| private static CommandMap defaultCommandMap; | |
| /** | |
| * Returns the default command map. | |
| * This returns a MailcapCommandMap if no value has been set using | |
| * <code>setDefaultCommandMap</code>. | |
| */ | |
| public static CommandMap getDefaultCommandMap() | |
| { | |
| if (defaultCommandMap == null) | |
| { | |
| defaultCommandMap = new MailcapCommandMap(); | |
| } | |
| return defaultCommandMap; | |
| } | |
| /** | |
| * Sets the default command map. | |
| * @param commandMap the new default command map | |
| */ | |
| public static void setDefaultCommandMap(CommandMap commandMap) | |
| { | |
| SecurityManager security = System.getSecurityManager(); | |
| if (security != null) | |
| { | |
| try | |
| { | |
| security.checkSetFactory(); | |
| } | |
| catch (SecurityException e) | |
| { | |
| if (commandMap != null && CommandMap.class.getClassLoader() != | |
| commandMap.getClass().getClassLoader()) | |
| { | |
| throw e; | |
| } | |
| } | |
| } | |
| defaultCommandMap = commandMap; | |
| } | |
| /* Instance scope */ | |
| /** | |
| * Returns the list of preferred commands for a MIME type. | |
| * @param mimeType the MIME type | |
| */ | |
| public abstract CommandInfo[] getPreferredCommands(String mimeType); | |
| /** | |
| * Returns the complete list of commands for a MIME type. | |
| * @param mimeType the MIME type | |
| */ | |
| public abstract CommandInfo[] getAllCommands(String mimeType); | |
| /** | |
| * Returns the command corresponding to the specified MIME type and | |
| * command name. | |
| * @param mimeType the MIME type | |
| * @param cmdName the command name | |
| */ | |
| public abstract CommandInfo getCommand(String mimeType, String cmdName); | |
| /** | |
| * Returns a DataContentHandler corresponding to the MIME type. | |
| * @param mimeType the MIME type | |
| */ | |
| public abstract DataContentHandler createDataContentHandler(String mimeType); | |
| /** | |
| * Get all the MIME types known to this command map. | |
| * If the command map doesn't support this operation, null is returned. | |
| * @return array of MIME types as strings, or null if not supported | |
| * @since JAF 1.1 | |
| */ | |
| public String[] getMimeTypes() | |
| { | |
| return null; | |
| } | |
| /** | |
| * Get the preferred command list from a MIME Type. The actual semantics | |
| * are determined by the implementation of the CommandMap. | |
| * <p> | |
| * The <code>DataSource</code> provides extra information, such as | |
| * the file name, that a CommandMap implementation may use to further | |
| * refine the list of commands that are returned. The implementation | |
| * in this class simply calls the <code>getPreferredCommands</code> | |
| * method that ignores this argument. | |
| * @param mimeType the MIME type | |
| * @param ds a DataSource for the data | |
| * @return the CommandInfo classes that represent the command Beans. | |
| * @since JAF 1.1 | |
| */ | |
| public CommandInfo[] getPreferredCommands(String mimeType, | |
| DataSource ds) | |
| { | |
| return getPreferredCommands(mimeType); | |
| } | |
| /** | |
| * Get all the available commands for this type. This method | |
| * should return all the possible commands for this MIME type. | |
| * <p> | |
| * The <code>DataSource</code> provides extra information, such as | |
| * the file name, that a CommandMap implementation may use to further | |
| * refine the list of commands that are returned. The implementation | |
| * in this class simply calls the <code>getAllCommands</code> | |
| * method that ignores this argument. | |
| * @param mimeType the MIME type | |
| * @param ds a DataSource for the data | |
| * @return the CommandInfo objects representing all the commands. | |
| * @since JAF 1.1 | |
| */ | |
| public CommandInfo[] getAllCommands(String mimeType, DataSource ds) | |
| { | |
| return getAllCommands(mimeType); | |
| } | |
| /** | |
| * Get the default command corresponding to the MIME type. | |
| * <p> | |
| * The <code>DataSource</code> provides extra information, such as | |
| * the file name, that a CommandMap implementation may use to further | |
| * refine the command that is chosen. The implementation | |
| * in this class simply calls the <code>getCommand</code> | |
| * method that ignores this argument. | |
| * @param mimeType the MIME type | |
| * @param cmdName the command name | |
| * @param ds a DataSource for the data | |
| * @return the CommandInfo corresponding to the command. | |
| * @since JAF 1.1 | |
| */ | |
| public CommandInfo getCommand(String mimeType, String cmdName, | |
| DataSource ds) | |
| { | |
| return getCommand(mimeType, cmdName); | |
| } | |
| /** | |
| * Locate a DataContentHandler that corresponds to the MIME type. | |
| * The mechanism and semantics for determining this are determined | |
| * by the implementation of the particular CommandMap. | |
| * <p> | |
| * The <code>DataSource</code> provides extra information, such as | |
| * the file name, that a CommandMap implementation may use to further | |
| * refine the choice of DataContentHandler. The implementation | |
| * in this class simply calls the <code>createDataContentHandler</code> | |
| * method that ignores this argument. | |
| * @param mimeType the MIME type | |
| * @param ds a DataSource for the data | |
| * @return the DataContentHandler for the MIME type | |
| * @since JAF 1.1 | |
| */ | |
| public DataContentHandler createDataContentHandler(String mimeType, | |
| DataSource ds) | |
| { | |
| return createDataContentHandler(mimeType); | |
| } | |
| } |