package sk.stuba.fiit.perconik.activity.debug.listeners; import javax.annotation.Nullable; import sk.stuba.fiit.perconik.activity.listeners.ActivityListener; import static java.util.Arrays.asList; import static sk.stuba.fiit.perconik.utilities.MoreStrings.toDefaultString; public abstract class AbstractLifecycleListener extends ActivityListener { public AbstractLifecycleListener() {} protected final void mark(final Object subject, final String prefix, final String format, @Nullable final Object ... args) { this.mark(asList(subject), prefix, format, args); } protected final void mark(final Iterable<?> subjects, final String prefix, final String format, @Nullable final Object ... args) { if (this.log.isEnabled()) { StringBuilder builder = new StringBuilder(); for (Object subject: subjects) { builder.append(toDefaultString(subject)).append(", "); } this.log.print("%s: %s -> %s", prefix, builder.substring(0, builder.length() - 2), String.format(format, args)); } } }