de.intarsys.cwt.font.afm
Class AFMParser

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

public class AFMParser
extends java.lang.Object

A simple parser for AFM type definition files.

See the "Adobe Font Metrics File Format Specification"


Field Summary
static char CHAR_BS
           
static char CHAR_CR
           
static char CHAR_FF
           
static char CHAR_HT
           
static char CHAR_LF
           
protected static byte[] characterClass
           
protected static byte CHARCLASS_ANY
           
protected static byte CHARCLASS_DELIMITER
           
protected static byte CHARCLASS_DIGIT
           
protected static byte CHARCLASS_NUMBERSPECIAL
           
protected static byte CHARCLASS_TOKEN
           
protected static byte CHARCLASS_WHITESPACE
           
 
Constructor Summary
AFMParser(AFM afm)
          AFMParser constructor comment.
 
Method Summary
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_ANY

protected static final byte CHARCLASS_ANY
See Also:
Constant Field Values

CHARCLASS_DELIMITER

protected static final byte CHARCLASS_DELIMITER
See Also:
Constant Field Values

CHARCLASS_DIGIT

protected static final byte CHARCLASS_DIGIT
See Also:
Constant Field Values

CHARCLASS_NUMBERSPECIAL

protected static final byte CHARCLASS_NUMBERSPECIAL
See Also:
Constant Field Values

CHARCLASS_TOKEN

protected static final byte CHARCLASS_TOKEN
See Also:
Constant Field Values

CHARCLASS_WHITESPACE

protected static final byte CHARCLASS_WHITESPACE
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