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

main.java.pro.verron.officestamper.experimental.PowerpointCollector Maven / Gradle / Ivy

Go to download

Office-stamper is a Java template engine for docx documents, forked from org.wickedsource.docx-stamper

The newest version!
package pro.verron.officestamper.experimental;


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

/**
 * The PowerpointCollector class is used to collect instances of a specific class in a PowerPoint presentation.
 *
 * @param  the type of instances to collect
 */
public class PowerpointCollector
        extends PowerpointVisitor {
    private final Class aClass;
    private final List list = new ArrayList<>();

    /**
     * The PowerpointCollector class is used to collect instances of a specific class in a PowerPoint presentation.
     *
     * @param aClass the type of instances to collect
     */
    public PowerpointCollector(Class aClass) {
        this.aClass = aClass;
    }

    /**
     * Collects instances of a specific class in a PowerPoint presentation.
     *
     * @param       the type of instances to collect
     * @param template the PowerPoint presentation template
     * @param aClass   the type of instances to collect
     *
     * @return a list of instances of the specified class
     */
    public static  List collect(
            Object template,
            Class aClass
    ) {
        var collector = new PowerpointCollector<>(aClass);
        collector.visit(template);
        return collector.collect();
    }

    /**
     * Retrieves the collected instances of a specific class.
     *
     * @return an instance list of the specified class
     */
    public List collect() {
        return list;
    }

    @Override
    protected void before(Object object) {
        if (aClass.isInstance(object))
            list.add(aClass.cast(object));
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy