Class MailcapFile


  • public class MailcapFile
    extends java.lang.Object
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static boolean addReverse  
      private java.util.Map fallback_hash
      Another Map like above, but for fallback entries.
      private java.util.Map native_commands
      A Map indexed by MIME type (string) that references a List of native commands (string) corresponding to the type.
      private java.util.Map type_hash
      A Map indexed by MIME type (string) that references a Map of commands for each type.
    • Constructor Summary

      Constructors 
      Constructor Description
      MailcapFile()
      Mailcap file default constructor.
      MailcapFile​(java.io.InputStream is)
      The constructor that takes an input stream as an argument.
      MailcapFile​(java.lang.String new_fname)
      The constructor that takes a filename as an argument.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void appendToMailcap​(java.lang.String mail_cap)
      appendToMailcap: Append to this Mailcap DB, use the mailcap format: Comment == "# comment string Entry == "mimetype; javabeanclass
      Example: # this is a comment image/gif jaf.viewers.ImageViewer
      java.util.Map getMailcapFallbackList​(java.lang.String mime_type)
      Get the Map of fallback MailcapEntries based on the MIME type.
      java.util.Map getMailcapList​(java.lang.String mime_type)
      Get the Map of MailcapEntries based on the MIME type.
      java.lang.String[] getMimeTypes()
      Return all the MIME types known to this mailcap file.
      java.lang.String[] getNativeCommands​(java.lang.String mime_type)
      Return all the native comands for the given MIME type.
      private java.util.Map mergeResults​(java.util.Map first, java.util.Map second)
      Merge the first hash into the second.
      private void parse​(java.io.Reader reader)
      parse file into a hash table of MC Type Entry Obj
      protected void parseLine​(java.lang.String mailcapEntry)
      A routine to parse individual entries in a Mailcap file.
      protected static void reportParseError​(int expectedToken, int otherExpectedToken, int anotherExpectedToken, int actualToken, java.lang.String actualTokenValue)  
      protected static void reportParseError​(int expectedToken, int otherExpectedToken, int actualToken, java.lang.String actualTokenValue)  
      protected static void reportParseError​(int expectedToken, int actualToken, java.lang.String actualTokenValue)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • type_hash

        private java.util.Map type_hash
        A Map indexed by MIME type (string) that references a Map of commands for each type. The comand Map is indexed by the command name and references a List of class names (strings) for each command.
      • fallback_hash

        private java.util.Map fallback_hash
        Another Map like above, but for fallback entries.
      • native_commands

        private java.util.Map native_commands
        A Map indexed by MIME type (string) that references a List of native commands (string) corresponding to the type.
      • addReverse

        private static boolean addReverse
    • Constructor Detail

      • MailcapFile

        public MailcapFile​(java.lang.String new_fname)
                    throws java.io.IOException
        The constructor that takes a filename as an argument.
        Parameters:
        new_fname - The file name of the mailcap file.
        Throws:
        java.io.IOException
      • MailcapFile

        public MailcapFile​(java.io.InputStream is)
                    throws java.io.IOException
        The constructor that takes an input stream as an argument.
        Parameters:
        is - the input stream
        Throws:
        java.io.IOException
      • MailcapFile

        public MailcapFile()
        Mailcap file default constructor.
    • Method Detail

      • getMailcapList

        public java.util.Map getMailcapList​(java.lang.String mime_type)
        Get the Map of MailcapEntries based on the MIME type.

        Semantics: First check for the literal mime type, if that fails looks for wildcard type/* and return that. Return the list of all that hit.

      • getMailcapFallbackList

        public java.util.Map getMailcapFallbackList​(java.lang.String mime_type)
        Get the Map of fallback MailcapEntries based on the MIME type.

        Semantics: First check for the literal mime type, if that fails looks for wildcard type/* and return that. Return the list of all that hit.

      • getMimeTypes

        public java.lang.String[] getMimeTypes()
        Return all the MIME types known to this mailcap file.
      • getNativeCommands

        public java.lang.String[] getNativeCommands​(java.lang.String mime_type)
        Return all the native comands for the given MIME type.
      • mergeResults

        private java.util.Map mergeResults​(java.util.Map first,
                                           java.util.Map second)
        Merge the first hash into the second. This merge will only effect the hashtable that is returned, we don't want to touch the one passed in since its integrity must be maintained.
      • appendToMailcap

        public void appendToMailcap​(java.lang.String mail_cap)
        appendToMailcap: Append to this Mailcap DB, use the mailcap format: Comment == "# comment string Entry == "mimetype; javabeanclass
        Example: # this is a comment image/gif jaf.viewers.ImageViewer
      • parse

        private void parse​(java.io.Reader reader)
                    throws java.io.IOException
        parse file into a hash table of MC Type Entry Obj
        Throws:
        java.io.IOException
      • parseLine

        protected void parseLine​(java.lang.String mailcapEntry)
                          throws MailcapParseException,
                                 java.io.IOException
        A routine to parse individual entries in a Mailcap file. Note that this routine does not handle line continuations. They should have been handled prior to calling this routine.
        Throws:
        MailcapParseException
        java.io.IOException
      • reportParseError

        protected static void reportParseError​(int expectedToken,
                                               int otherExpectedToken,
                                               int actualToken,
                                               java.lang.String actualTokenValue)
                                        throws MailcapParseException
        Throws:
        MailcapParseException
      • reportParseError

        protected static void reportParseError​(int expectedToken,
                                               int otherExpectedToken,
                                               int anotherExpectedToken,
                                               int actualToken,
                                               java.lang.String actualTokenValue)
                                        throws MailcapParseException
        Throws:
        MailcapParseException