MojoReporter.java

package org.thewonderlemming.c4plantuml.mojo;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import org.thewonderlemming.c4plantuml.commons.Reporter;

/**
 * A {@link Reporter} implementation that collects reported messages to enable their retrieval later.
 *
 * @author thewonderlemming
 *
 */
public class MojoReporter implements Reporter {

    private final List<String> reports = Collections.synchronizedList(new ArrayList<>());


    /**
     * Checks whether or not the current {@link Reporter} instance contains messages.
     *
     * @return {@code true} if there are messages, {@code false} else.
     */
    public boolean containsReports() {
        return !this.reports.isEmpty();
    }

    /**
     * Retrieves the reported messages.
     * <p>
     * The first message of the list will be the first message that was reported (FIFO).
     *
     * @return the reported messages list.
     */
    public List<String> getReports() {
        return this.reports;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public void report(final String message) {
        this.reports.add(message);
    }
}