Class AFMParser

java.lang.Object
de.intarsys.cwt.font.afm.AFMParser

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

See the "Adobe Font Metrics File Format Specification"

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static char
     
    static char
     
    static char
     
    static char
     
    static char
     
    protected static final byte[]
     
    protected static final byte
     
    protected static final byte
     
    protected static final byte
     
    protected static final byte
     
    protected static final byte
     
    protected static final byte
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    AFMParser constructor comment.
  • Method Summary

    Modifier and Type
    Method
    Description
    static final boolean
    isEOL(int i)
    evaluate to true if i is a valid line terminator.
    static final boolean
    isWhitespace(int i)
    evaluate to true if i is a valid whitespace.
    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 Details

    • characterClass

      protected static final byte[] characterClass
    • CHARCLASS_ANY

      protected static final byte CHARCLASS_ANY
      See Also:
    • CHARCLASS_DELIMITER

      protected static final byte CHARCLASS_DELIMITER
      See Also:
    • CHARCLASS_DIGIT

      protected static final byte CHARCLASS_DIGIT
      See Also:
    • CHARCLASS_NUMBERSPECIAL

      protected static final byte CHARCLASS_NUMBERSPECIAL
      See Also:
    • CHARCLASS_TOKEN

      protected static final byte CHARCLASS_TOKEN
      See Also:
    • CHARCLASS_WHITESPACE

      protected static final byte CHARCLASS_WHITESPACE
      See Also:
    • 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 Details

    • AFMParser

      public AFMParser(AFM afm)
      AFMParser constructor comment.
  • Method Details

    • 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 IOException
      Parse a AFM object from the input stream is.
      Parameters:
      is - The input stream containing the definition.
      Returns:
      The AFM parsed.
      Throws:
      IOException
    • read

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

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

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

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

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

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

      public void readSpaces(de.intarsys.tools.randomaccess.IRandomAccess input) throws 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:
      IOException
    • readToken

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

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