org.jplate.foundation
Interface FormattableIfc

All Known Subinterfaces:
AttributeIfc<N,V>, BranchNodeIfc<BC,LC>, KvpIfc, KvpParseContextIfc<P>, LeafNodeIfc<BC,LC>, NodeIfc<BC,LC>, SourceIfc<S>
All Known Implementing Classes:
AbstractNode, DefaultAttribute, DefaultBranchNode, DefaultKvp, DefaultKvpParseContext, DefaultLeafNode, DefaultSource

public interface FormattableIfc

Classes should implement this interface to gain "prettier" toString() functionality by way of allowing arbitrary prependable text. For instance this can be used to stagger (indent) data members.

Consider the following classes:

public class Bar implements FormattableIfc
{
    public int _value1;
    public int _value2;

    public String toString ()
    {
        return toString ( "" );
    }

    public String toString ( final String prepend )
    {
        return
            prepend + "_value1 = [" + _value1 + "]\n" +
            prepend + "_value2 = [" + _value2 + "]\n";
    }
}

public class Foo implements FormattableIfc
{
    public final Bar _bar1 = new Bar ();
    public final Bar _bar2 = new Bar ();

    public int _age;

    public String toString ()
    {
        return toString ( "" );
    }

    public String toString ( final String prepend )
    {
        return
            prepend + "_bar1 =\n" + _bar1.toString ( prepend + "    " ) +
            prepend + "_bar2 =\n" + _bar2.toString ( prepend + "    " ) +
            prepend + "_age  = [" + _age + "]";
    }
}
    
If one executes the above code using the following:
final Foo foo = new Foo ();

foo._bar1._value1 = 1;
foo._bar1._value2 = 2;

foo._bar2._value1 = 3;
foo._bar2._value2 = 4;

foo._age = 37;

System.out.println ( "foo =\n" + foo.toString ( "----" ) );
    
Will yield:
foo =
----_bar1 =
----    _value1 = [1]
----    _value2 = [2]
----_bar2 =
----    _value1 = [3]
----    _value2 = [4]
----_age  = [37]
    

Modifications:
    $Author: sfloess $
    $Date: 2008-12-02 12:32:45 -0500 (Tue, 02 Dec 2008) $
    $Revision: 479 $
    $HeadURL: https://jplate.svn.sourceforge.net/svnroot/jplate/trunk/src/dev/java/org/jplate/foundation/FormattableIfc.java $
    


Method Summary
 java.lang.String toString(java.lang.String prepend)
          Returns a string representation of self prepending prepend to each line.
 

Method Detail

toString

java.lang.String toString(java.lang.String prepend)
Returns a string representation of self prepending prepend to each line.

Parameters:
prepend - The text to prepend to each line as defined in the return value.
Returns:
A string representation of self who has prepend prepended to each line.