src/share/jaf_classes/javax/activation/CommandMap.java

Tue, 06 Mar 2012 16:09:35 -0800

author
ohair
date
Tue, 06 Mar 2012 16:09:35 -0800
changeset 286
f50545b5e2f1
child 494
2fcd3ddb57a6
permissions
-rw-r--r--

7150322: Stop using drop source bundles in jaxws
Reviewed-by: darcy, ohrstrom

     1 /*
     2  * Copyright (c) 1997, 2005, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.  Oracle designates this
     8  * particular file as subject to the "Classpath" exception as provided
     9  * by Oracle in the LICENSE file that accompanied this code.
    10  *
    11  * This code is distributed in the hope that it will be useful, but WITHOUT
    12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    14  * version 2 for more details (a copy is included in the LICENSE file that
    15  * accompanied this code).
    16  *
    17  * You should have received a copy of the GNU General Public License version
    18  * 2 along with this work; if not, write to the Free Software Foundation,
    19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    20  *
    21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    22  * or visit www.oracle.com if you need additional information or have any
    23  * questions.
    24  */
    26 package javax.activation;
    29 /**
    30  * The CommandMap class provides an interface to a registry of
    31  * command objects available in the system.
    32  * Developers are expected to either use the CommandMap
    33  * implementation included with this package (MailcapCommandMap) or
    34  * develop their own. Note that some of the methods in this class are
    35  * abstract.
    36  *
    37  * @since 1.6
    38  */
    39 public abstract class CommandMap {
    40     private static CommandMap defaultCommandMap = null;
    42     /**
    43      * Get the default CommandMap.
    44      * <p>
    45      *
    46      * <ul>
    47      * <li> In cases where a CommandMap instance has been previously set
    48      *      to some value (via <i>setDefaultCommandMap</i>)
    49      *  return the CommandMap.
    50      * <li>
    51      *  In cases where no CommandMap has been set, the CommandMap
    52      *       creates an instance of <code>MailcapCommandMap</code> and
    53      *       set that to the default, returning its value.
    54      *
    55      * </ul>
    56      *
    57      * @return the CommandMap
    58      */
    59     public static CommandMap getDefaultCommandMap() {
    60         if (defaultCommandMap == null)
    61             defaultCommandMap = new MailcapCommandMap();
    63         return defaultCommandMap;
    64     }
    66     /**
    67      * Set the default CommandMap. Reset the CommandMap to the default by
    68      * calling this method with <code>null</code>.
    69      *
    70      * @param commandMap The new default CommandMap.
    71      * @exception SecurityException if the caller doesn't have permission
    72      *                                  to change the default
    73      */
    74     public static void setDefaultCommandMap(CommandMap commandMap) {
    75         SecurityManager security = System.getSecurityManager();
    76         if (security != null) {
    77             try {
    78                 // if it's ok with the SecurityManager, it's ok with me...
    79                 security.checkSetFactory();
    80             } catch (SecurityException ex) {
    81                 // otherwise, we also allow it if this code and the
    82                 // factory come from the same class loader (e.g.,
    83                 // the JAF classes were loaded with the applet classes).
    84                 if (CommandMap.class.getClassLoader() !=
    85                             commandMap.getClass().getClassLoader())
    86                     throw ex;
    87             }
    88         }
    89         defaultCommandMap = commandMap;
    90     }
    92     /**
    93      * Get the preferred command list from a MIME Type. The actual semantics
    94      * are determined by the implementation of the CommandMap.
    95      *
    96      * @param mimeType  the MIME type
    97      * @return the CommandInfo classes that represent the command Beans.
    98      */
    99     abstract public  CommandInfo[] getPreferredCommands(String mimeType);
   101     /**
   102      * Get the preferred command list from a MIME Type. The actual semantics
   103      * are determined by the implementation of the CommandMap. <p>
   104      *
   105      * The <code>DataSource</code> provides extra information, such as
   106      * the file name, that a CommandMap implementation may use to further
   107      * refine the list of commands that are returned.  The implementation
   108      * in this class simply calls the <code>getPreferredCommands</code>
   109      * method that ignores this argument.
   110      *
   111      * @param mimeType  the MIME type
   112      * @param ds        a DataSource for the data
   113      * @return the CommandInfo classes that represent the command Beans.
   114      * @since   JAF 1.1
   115      */
   116     public CommandInfo[] getPreferredCommands(String mimeType, DataSource ds) {
   117         return getPreferredCommands(mimeType);
   118     }
   120     /**
   121      * Get all the available commands for this type. This method
   122      * should return all the possible commands for this MIME type.
   123      *
   124      * @param mimeType  the MIME type
   125      * @return the CommandInfo objects representing all the commands.
   126      */
   127     abstract public CommandInfo[] getAllCommands(String mimeType);
   129     /**
   130      * Get all the available commands for this type. This method
   131      * should return all the possible commands for this MIME type. <p>
   132      *
   133      * The <code>DataSource</code> provides extra information, such as
   134      * the file name, that a CommandMap implementation may use to further
   135      * refine the list of commands that are returned.  The implementation
   136      * in this class simply calls the <code>getAllCommands</code>
   137      * method that ignores this argument.
   138      *
   139      * @param mimeType  the MIME type
   140      * @param ds        a DataSource for the data
   141      * @return the CommandInfo objects representing all the commands.
   142      * @since   JAF 1.1
   143      */
   144     public CommandInfo[] getAllCommands(String mimeType, DataSource ds) {
   145         return getAllCommands(mimeType);
   146     }
   148     /**
   149      * Get the default command corresponding to the MIME type.
   150      *
   151      * @param mimeType  the MIME type
   152      * @param cmdName   the command name
   153      * @return the CommandInfo corresponding to the command.
   154      */
   155     abstract public CommandInfo getCommand(String mimeType, String cmdName);
   157     /**
   158      * Get the default command corresponding to the MIME type. <p>
   159      *
   160      * The <code>DataSource</code> provides extra information, such as
   161      * the file name, that a CommandMap implementation may use to further
   162      * refine the command that is chosen.  The implementation
   163      * in this class simply calls the <code>getCommand</code>
   164      * method that ignores this argument.
   165      *
   166      * @param mimeType  the MIME type
   167      * @param cmdName   the command name
   168      * @param ds        a DataSource for the data
   169      * @return the CommandInfo corresponding to the command.
   170      * @since   JAF 1.1
   171      */
   172     public CommandInfo getCommand(String mimeType, String cmdName,
   173                                 DataSource ds) {
   174         return getCommand(mimeType, cmdName);
   175     }
   177     /**
   178      * Locate a DataContentHandler that corresponds to the MIME type.
   179      * The mechanism and semantics for determining this are determined
   180      * by the implementation of the particular CommandMap.
   181      *
   182      * @param mimeType  the MIME type
   183      * @return          the DataContentHandler for the MIME type
   184      */
   185     abstract public DataContentHandler createDataContentHandler(String
   186                                                                 mimeType);
   188     /**
   189      * Locate a DataContentHandler that corresponds to the MIME type.
   190      * The mechanism and semantics for determining this are determined
   191      * by the implementation of the particular CommandMap. <p>
   192      *
   193      * The <code>DataSource</code> provides extra information, such as
   194      * the file name, that a CommandMap implementation may use to further
   195      * refine the choice of DataContentHandler.  The implementation
   196      * in this class simply calls the <code>createDataContentHandler</code>
   197      * method that ignores this argument.
   198      *
   199      * @param mimeType  the MIME type
   200      * @param ds        a DataSource for the data
   201      * @return          the DataContentHandler for the MIME type
   202      * @since   JAF 1.1
   203      */
   204     public DataContentHandler createDataContentHandler(String mimeType,
   205                                 DataSource ds) {
   206         return createDataContentHandler(mimeType);
   207     }
   209     /**
   210      * Get all the MIME types known to this command map.
   211      * If the command map doesn't support this operation,
   212      * null is returned.
   213      *
   214      * @return          array of MIME types as strings, or null if not supported
   215      * @since   JAF 1.1
   216      */
   217     public String[] getMimeTypes() {
   218         return null;
   219     }
   220 }

mercurial