package org.laborra.beantrace;

import org.laborra.beantrace.model.Vertex;
import org.laborra.beantrace.renderers.GraphRenderer;

/**
 * Main library entry point.
 */
public class BeanTraces {

    /**
     * Print an object trace with the default configuration.
     *
     * @see #newDefaultConfiguration()
     *
     * @param subject The object to print
     */
    public static void printBeanTrace(Object subject) {
        printBeanTrace(subject, newDefaultConfiguration());
    }

    /**
     * Prints an object trace and dumps it to the given renderer.
     *
     * @see org.laborra.beantrace.renderers.GraphRenderers
     *
     * @param subject The object to print
     * @param graphRenderer The renderer to use
     */
    public static void printBeanTrace(Object subject, GraphRenderer graphRenderer) {
        final TraceConfiguration traceConfiguration = newDefaultConfiguration();
        traceConfiguration.setGraphRenderer(graphRenderer);
        printBeanTrace(subject, traceConfiguration);
    }

    /**
     * Prints an object trace with the given configuration.
     *
     * @param subject The object to print
     * @param traceConfiguration The algorithm configuration
     */
    public static void printBeanTrace(Object subject, TraceConfiguration traceConfiguration) {
        final Vertex vertex = traceConfiguration.getVertexFactory().create(subject);
        traceConfiguration.getGraphRenderer().render(vertex);
    }

    /**
     * Create a new configuration object with default values.
     *
     * @return the configuration.
     */
    public static TraceConfiguration newDefaultConfiguration() {
        return TraceConfiguration.makeDefault();
    }

}

@@ -134,33 +134,461 @@
 %0A * 
-Main library entry point.
+%3Cp%3EBean Trace enables printing  object relationships in a graphic clear way.%0A * Following examples show the various usage of this library.%3C/p%3E%0A *%0A * %3Ch2%3EBasic printing%3C/h2%3E%0A * %3Cpre class=%22code%22%3E%3Ccode class=%22java%22%3E%0A * List&lt;String&gt; subject = new LinkedList&lt;&gt;();%0A * subject.add(%22one%22);%0A * subject.add(%22two%22);%0A * BeanTraces.printBeanTrace(subject);%0A * %3C/code%3E%3C/pre%3E%0A * Output:%0A * %3Cpre%3E%0A * LinkedList%0A *    %7C-- 1 : two%0A *    %60-- 0 : one%0A * %3C/pre%3E
 %0A */

Improve main javadoc