J avolution v3.7 (J2SE 1.5+)

javolution.lang
Class TextFormat<T>

java.lang.Object
  extended by javolution.lang.TextFormat<T>

public abstract class TextFormat<T>
extends java.lang.Object

This class represents the base format for text parsing and formatting; it supports CharSequence and Appendable interfaces for greater flexibility.

The default format (used by valueOf(CharSequence), toString() or toText()) can be locally scoped. For example:

     public class Complex extends RealtimeObject {
         public static final LocalReference<TextFormat<Complex>> FORMAT 
             = new LocalReference<TextFormat<Complex>>(new TextFormat<Complex>() {
                 ... // Default format (cartesien form).
             });
         public Complex valueOf(CharSequence csq) {
             return FORMAT.get().parse(csq);
         }
         public Text toText() {
             return FORMAT.get().format(this);
         }
     }
     ...
     Matrix<Complex> M = ...;
     LocalContext.enter();
     try {
         Complex.FORMAT.set(POLAR); // Current thread displays complex numbers
         System.out.prinln(M);      // using the polar form.
     } finally {
         LocalContext.exit(); // Current thread reverts to previous format.
     }

For parsing/formatting of primitive types, the TypeFormat utility class is recommended.

Version:
3.7, January 14, 2006
Author:
Jean-Marie Dautelle

Nested Class Summary
static class TextFormat.Cursor
          This class represents a parsing cursor.
 
Constructor Summary
protected TextFormat()
           
 
Method Summary
 Text format(T obj)
          Formats the specified object to a Text instance (convenience method).
abstract  java.lang.Appendable format(T obj, java.lang.Appendable dest)
          Formats the specified object into an Appendable
 T parse(java.lang.CharSequence csq)
          Parses a whole character sequence from the beginning to produce an object (convenience method).
abstract  T parse(java.lang.CharSequence csq, TextFormat.Cursor cursor)
          Parses a portion of the specified CharSequence from the specified position to produce an object.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TextFormat

protected TextFormat()
Method Detail

format

public abstract java.lang.Appendable format(T obj,
                                            java.lang.Appendable dest)
                                     throws java.io.IOException
Formats the specified object into an Appendable

Parameters:
obj - the object to format.
dest - the appendable destination.
Returns:
the specified Appendable.
Throws:
java.io.IOException - if an I/O exception occurs.

parse

public abstract T parse(java.lang.CharSequence csq,
                        TextFormat.Cursor cursor)
Parses a portion of the specified CharSequence from the specified position to produce an object. If parsing succeeds, then the index of the cursor argument is updated to the index after the last character used.

Parameters:
csq - the CharSequence to parse.
cursor - the cursor holding the current parsing index.
Returns:
the object parsed from the specified character sub-sequence.
Throws:
java.lang.RuntimeException - if any problem occurs while parsing the specified character sequence (e.g. illegal syntax).

format

public final Text format(T obj)
Formats the specified object to a Text instance (convenience method).

Parameters:
obj - the object being formated.
Returns:
the text representing the specified object.

parse

public final T parse(java.lang.CharSequence csq)
Parses a whole character sequence from the beginning to produce an object (convenience method).

Parameters:
csq - the whole character sequence to parse.
Returns:
the corresponding object.
Throws:
java.lang.IllegalArgumentException - if the specified character sequence cannot be fully parsed.

J avolution v3.7 (J2SE 1.5+)

Copyright © 2006 Javolution.