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.IPageAppender;
class CompositeIPageAppender implements IPageAppender {
private final List<IPageAppender> delegs;
public CompositeIPageAppender(List<IPageAppender> delegs) {
this.delegs = (delegs == null) ? new ArrayList<IPageAppender>() : delegs;
}
public CompositeIPageAppender(IPageAppender... delegs) {
this(Arrays.asList(delegs));
}
public CompositeIPageAppender add(IPageAppender deleg, IPageAppender... delegs) {
this.delegs.add(deleg);
for (IPageAppender d : delegs) {
this.delegs.add(d);
}
return this;
}
public CompositeIPageAppender clear() {
delegs.clear();
return this;
}
@Override
public PDDocument append(int start, PDDocument document) throws IOException {
PDDocument ret = document;
for (IPageAppender deleg : delegs) {
ret = deleg.append(start, ret);
}
return ret;
}
}