Class AFMParser


  • public class AFMParser
    extends java.lang.Object
    A simple parser for AFM type definition files.

    See the "Adobe Font Metrics File Format Specification"

    • Constructor Summary

      Constructors 
      Constructor Description
      AFMParser​(AFM afm)
      AFMParser constructor comment.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static boolean isEOL​(int i)
      evaluate to true if i is a valid line terminator.
      static boolean isWhitespace​(int i)
      evaluate to true if i is a valid whitespace.
      AFM parse​(de.intarsys.tools.randomaccess.IRandomAccess random)
      Parse a AFM object from the input stream is.
      protected void read​(de.intarsys.tools.randomaccess.IRandomAccess random)  
      protected byte[] readBlock​(de.intarsys.tools.randomaccess.IRandomAccess random)
      ignore this and any nested Start/End pair
      protected byte[] readCharMetrics​(de.intarsys.tools.randomaccess.IRandomAccess random)  
      protected byte[] readFontMetrics​(de.intarsys.tools.randomaccess.IRandomAccess random)  
      byte[] readLine​(de.intarsys.tools.randomaccess.IRandomAccess input)
      read a single line.
      protected byte[] readLineElement​(de.intarsys.tools.randomaccess.IRandomAccess input, int next)  
      void readSpaces​(de.intarsys.tools.randomaccess.IRandomAccess input)
      read all characters until EOF or non space char appears.
      byte[] readToken​(de.intarsys.tools.randomaccess.IRandomAccess input)
      read a single token.
      protected byte[] readTokenElement​(de.intarsys.tools.randomaccess.IRandomAccess input, int next)  
      • Methods inherited from class java.lang.Object

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

      • characterClass

        protected static final byte[] characterClass
      • CHARCLASS_NUMBERSPECIAL

        protected static final byte CHARCLASS_NUMBERSPECIAL
        See Also:
        Constant Field Values
      • CHAR_BS

        public static char CHAR_BS
      • CHAR_CR

        public static char CHAR_CR
      • CHAR_FF

        public static char CHAR_FF
      • CHAR_HT

        public static char CHAR_HT
      • CHAR_LF

        public static char CHAR_LF
    • Constructor Detail

      • AFMParser

        public AFMParser​(AFM afm)
        AFMParser constructor comment.
    • Method Detail

      • isEOL

        public static final boolean isEOL​(int i)
        evaluate to true if i is a valid line terminator.
        Parameters:
        i - i a byte representation
        Returns:
        true if i is a valid line terminator
      • isWhitespace

        public static final boolean isWhitespace​(int i)
        evaluate to true if i is a valid whitespace.
        Parameters:
        i - i a byte representation
        Returns:
        true if i is a valid whitespace
      • parse

        public AFM parse​(de.intarsys.tools.randomaccess.IRandomAccess random)
                  throws java.io.IOException
        Parse a AFM object from the input stream is.
        Parameters:
        is - The input stream containing the definition.
        Returns:
        The AFM parsed.
        Throws:
        java.io.IOException
      • read

        protected void read​(de.intarsys.tools.randomaccess.IRandomAccess random)
                     throws java.io.IOException
        Throws:
        java.io.IOException
      • readBlock

        protected byte[] readBlock​(de.intarsys.tools.randomaccess.IRandomAccess random)
                            throws java.io.IOException
        ignore this and any nested Start/End pair
        Throws:
        java.io.IOException
      • readCharMetrics

        protected byte[] readCharMetrics​(de.intarsys.tools.randomaccess.IRandomAccess random)
                                  throws java.io.IOException
        Throws:
        java.io.IOException
      • readFontMetrics

        protected byte[] readFontMetrics​(de.intarsys.tools.randomaccess.IRandomAccess random)
                                  throws java.io.IOException
        Throws:
        java.io.IOException
      • readLine

        public byte[] readLine​(de.intarsys.tools.randomaccess.IRandomAccess input)
                        throws java.io.IOException
        read a single line.
        Returns:
        the array of characters belonging to the line
        Throws:
        java.io.IOException
      • readLineElement

        protected byte[] readLineElement​(de.intarsys.tools.randomaccess.IRandomAccess input,
                                         int next)
                                  throws java.io.IOException
        Throws:
        java.io.IOException
      • readSpaces

        public void readSpaces​(de.intarsys.tools.randomaccess.IRandomAccess input)
                        throws java.io.IOException
        read all characters until EOF or non space char appears. the first non space char is pushed back so the next char read is the first non space char.
        Throws:
        java.io.IOException
      • readToken

        public byte[] readToken​(de.intarsys.tools.randomaccess.IRandomAccess input)
                         throws java.io.IOException
        read a single token.
        Returns:
        the array of characters belonging to the token
        Throws:
        java.io.IOException
      • readTokenElement

        protected byte[] readTokenElement​(de.intarsys.tools.randomaccess.IRandomAccess input,
                                          int next)
                                   throws java.io.IOException
        Throws:
        java.io.IOException