001 /*
002 * Licensed to the Apache Software Foundation (ASF) under one
003 * or more contributor license agreements. See the NOTICE file
004 * distributed with this work for additional information
005 * regarding copyright ownership. The ASF licenses this file
006 * to you under the Apache License, Version 2.0 (the
007 * "License"); you may not use this file except in compliance
008 * with the License. You may obtain a copy of the License at
009 *
010 * http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing,
013 * software distributed under the License is distributed on an
014 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
015 * KIND, either express or implied. See the License for the
016 * specific language governing permissions and limitations
017 * under the License.
018 */
019
020 package javax.activation;
021
022 /**
023 * @version $Rev: 467553 $ $Date: 2006-10-24 21:01:51 -0700 (Tue, 24 Oct 2006) $
024 */
025 public abstract class CommandMap {
026 private static CommandMap defaultCommandMap = new MailcapCommandMap();
027
028 /**
029 * Return the default CommandMap. If this has not been explictly set
030 * using setDefaultCommandMap() then a MailcapCommandMap is returned.
031 * @return the default CommandMap
032 */
033 public static CommandMap getDefaultCommandMap() {
034 return defaultCommandMap;
035 }
036
037 /**
038 * Set the default CommandMap.
039 *
040 * @param commandMap the new default CommandMap; if null resets to a MailcapCommandMap
041 * @throws SecurityException if the caller does not have "SetFactory" RuntimePermission
042 */
043 public static void setDefaultCommandMap(CommandMap commandMap) {
044 SecurityManager sm = System.getSecurityManager();
045 if (sm != null) {
046 sm.checkSetFactory();
047 }
048 defaultCommandMap = commandMap == null ? new MailcapCommandMap() : commandMap;
049 }
050
051 public CommandMap() {
052 }
053
054 public abstract CommandInfo[] getPreferredCommands(String mimeType);
055
056 public abstract CommandInfo[] getAllCommands(String mimeType);
057
058 public abstract CommandInfo getCommand(String mimeType, String cmdName);
059
060 public abstract DataContentHandler createDataContentHandler(String mimeType);
061 }