package com.brightgenerous.pdfbox.writer.appender;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.apache.pdfbox.pdmodel.PDDocument;
import com.brightgenerous.pdfbox.writer.IPagesAppender;
class CompositeIPagesAppender implements IPagesAppender {
private final List<IPagesAppender> delegs;
public CompositeIPagesAppender(List<IPagesAppender> delegs) {
this.delegs = (delegs == null) ? new ArrayList<IPagesAppender>() : delegs;
}
public CompositeIPagesAppender(IPagesAppender... delegs) {
this(Arrays.asList(delegs));
}
public CompositeIPagesAppender add(IPagesAppender deleg, IPagesAppender... delegs) {
this.delegs.add(deleg);
for (IPagesAppender d : delegs) {
this.delegs.add(d);
}
return this;
}
public CompositeIPagesAppender clear() {
delegs.clear();
return this;
}
@Override
public PDDocument append(int end, int start, PDDocument document) throws IOException {
PDDocument ret = document;
for (IPagesAppender deleg : delegs) {
ret = deleg.append(end, start, ret);
}
return ret;
}
}