All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.chrlembeck.util.objects.ToStringWrapper Maven / Gradle / Ivy

package de.chrlembeck.util.objects;

import java.util.Objects;
import java.util.function.Function;

/**
 * Hilfklasse zum Wrappen eines Objekts, so dass man ihm eine angepasste toString-Methode mitgeben kann. Kann z.B. zur
 * Anzeige von Objekten in Swing-Komponenten verwendet werden, welche Häufig die toString-Methode zur Darstellung
 * verwenden.
 * 
 * @author Christoph Lembeck.
 *
 * @param 
 *            Typ des in dem Wrapper enthaltenen Objekts.
 */
public class ToStringWrapper {

    /**
     * Referenz auf das enthaltene Objekt.
     */
    private O object;

    /**
     * Methode, die Statt der toString-Methode des eingepackten Objekts ausgeführt werden soll.
     */
    private Function toStringFunction;

    /**
     * Erstell einen neuen Wrapper für das Objekt.
     * 
     * @param object
     *            Zu kapseldnes Objekt.
     * @param toStringFunction
     *            Funktion, die statt der toString-Methode aufgerufen werden soll.
     */
    public ToStringWrapper(final O object, final Function toStringFunction) {
        this.object = object;
        this.toStringFunction = Objects.requireNonNull(toStringFunction);
    }

    /**
     * Ruft die im Wrapper hinterlegte Funktion zur textuellen Darstellung des enthaltenen Objekts auf.
     * 
     * @see #toStringFunction
     */
    @Override
    public String toString() {
        return toStringFunction.apply(object);
    }

    /**
     * Gibt das enthaltene Objekt wieder zurück.
     * 
     * @return Das enthaltene Objekt.
     */
    public O getObject() {
        return object;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy