// Path: src/main/java/moulder/Moulder.java
// public interface Moulder {
//     /**
//      * This is where a moulder can process the input element to generate its
//      * result.
//      *
//      * @param element the element and its associated data to process
//      * @return the list of nodes and their associated data that were generated
//      *         after processing the input element.
//      */
//     List<Node> process(Element element);
// }
// 
// Path: src/main/java/moulder/moulds/helpers/JsoupHelper.java
// public class JsoupHelper {
// 
//     public static Element copy(Element e) {
//         Element res = new Element(Tag.valueOf(e.tagName()), e.baseUri());
//         for (Attribute a: e.attributes()) {
//             res.attr(a.getKey(), a.getValue());
//         }
//         res.html(e.html());
//         return res;
//     }
// }


import moulder.Moulder;
import moulder.moulds.helpers.JsoupHelper;
import org.jsoup.nodes.Element;
import org.jsoup.nodes.Node;
import java.util.ArrayList;
import java.util.List;
package moulder.moulds;




/**
 * A moulder that repeats its input element
 *
 * @author jawher
 */
public class Repeater implements Moulder {

    private final int count;

    /**
     * Creates a moulder that duplicates its input element <code>count</code> times
     *
     * @param count the number of duplicates to produce
     */
    public Repeater(int count) {
        this.count = count;
    }


    public List<Node> process(Element element) {
        List<Node> res = new ArrayList<Node>();
        for (int index = 0; index < count; index++) {
// Path: src/main/java/moulder/Moulder.java
// public interface Moulder {
//     /**
//      * This is where a moulder can process the input element to generate its
//      * result.
//      *
//      * @param element the element and its associated data to process
//      * @return the list of nodes and their associated data that were generated
//      *         after processing the input element.
//      */
//     List<Node> process(Element element);
// }
// 
// Path: src/main/java/moulder/moulds/helpers/JsoupHelper.java
// public class JsoupHelper {
// 
//     public static Element copy(Element e) {
//         Element res = new Element(Tag.valueOf(e.tagName()), e.baseUri());
//         for (Attribute a: e.attributes()) {
//             res.attr(a.getKey(), a.getValue());
//         }
//         res.html(e.html());
//         return res;
//     }
// }


// Path: src/main/java/moulder/moulds/Repeater.java
import moulder.Moulder;
import moulder.moulds.helpers.JsoupHelper;
import org.jsoup.nodes.Element;
import org.jsoup.nodes.Node;
import java.util.ArrayList;
import java.util.List;

package moulder.moulds;




/**
 * A moulder that repeats its input element
 *
 * @author jawher
 */
public class Repeater implements Moulder {

    private final int count;

    /**
     * Creates a moulder that duplicates its input element <code>count</code> times
     *
     * @param count the number of duplicates to produce
     */
    public Repeater(int count) {
        this.count = count;
    }


    public List<Node> process(Element element) {
        List<Node> res = new ArrayList<Node>();
        for (int index = 0; index < count; index++) {
            res.add(JsoupHelper.copy(element));