/** * */ package at.gv.egiz.pdfas.api.sign.pos; import at.gv.egiz.pdfas.api.sign.pos.axis.AbsoluteAxisAlgorithm; import at.gv.egiz.pdfas.api.sign.pos.axis.AutoAxisAlgorithm; import at.gv.egiz.pdfas.api.sign.pos.axis.AxisAlgorithm; import at.gv.egiz.pdfas.api.sign.pos.page.AbsolutePageAlgorithm; import at.gv.egiz.pdfas.api.sign.pos.page.AutoPageAlgorithm; import at.gv.egiz.pdfas.api.sign.pos.page.NewPageAlgorithm; import at.gv.egiz.pdfas.api.sign.pos.page.PageAlgorithm; /** * Defines how the signature positioning is to be performed. * *

* This positioning allows to select the location where the signature block is * placed in the document. *

* * @author wprinz */ public class SignaturePositioning { /** * The x axis algorithm. * *

* May be {@link AutoAxisAlgorithm} or {@link AbsoluteAxisAlgorithm} *

*/ protected AxisAlgorithm xAlgorithm = new AutoAxisAlgorithm(); /** * The y axis algorithm. * *

* May be {@link AutoAxisAlgorithm} or {@link AbsoluteAxisAlgorithm} *

*/ protected AxisAlgorithm yAlgorithm = new AutoAxisAlgorithm(); /** * The width algorithm. * *

* May be {@link AutoAxisAlgorithm} or {@link AbsoluteAxisAlgorithm} *

*/ protected AxisAlgorithm widthAlgorithm = new AutoAxisAlgorithm(); /** * The page algorithm. * *

* May be {@link AutoPageAlgorithm}, {@link AbsolutePageAlgorithm} or * {@link NewPageAlgorithm} *

*/ protected PageAlgorithm pageAlgorithm = new AutoPageAlgorithm(); /** * Provides the position of the footline. * *

* Only used if the pageAlgorithm is {@link AutoPageAlgorithm} and the * yAlgorithm is {@link AutoAxisAlgorithm} *

*/ protected float footerLine = 0.0f; protected void checkAxisAlgorithm(AxisAlgorithm algorithm) { if (algorithm == null) { throw new IllegalArgumentException("The algorithm must not be null."); } if (!(algorithm instanceof AutoAxisAlgorithm) && !(algorithm instanceof AbsoluteAxisAlgorithm)) { throw new IllegalArgumentException("The algorithm must be either Auto or Absolute."); } } protected void checkPageAlgorithm(PageAlgorithm algorithm) { if (algorithm == null) { throw new IllegalArgumentException("The algorithm must not be null."); } if (!(algorithm instanceof AutoPageAlgorithm) && !(algorithm instanceof AbsolutePageAlgorithm) && !(algorithm instanceof NewPageAlgorithm)) { throw new IllegalArgumentException("The algorithm must be either Auto or Absolute."); } } /** * @return the xAlgorithm */ public AxisAlgorithm getXAlgorithm() { return this.xAlgorithm; } /** * @param algorithm * the xAlgorithm to set */ public void setXAlgorithm(AxisAlgorithm algorithm) { checkAxisAlgorithm(algorithm); xAlgorithm = algorithm; } /** * @return the yAlgorithm */ public AxisAlgorithm getYAlgorithm() { return this.yAlgorithm; } /** * @param algorithm * the yAlgorithm to set */ public void setYAlgorithm(AxisAlgorithm algorithm) { checkAxisAlgorithm(algorithm); yAlgorithm = algorithm; } /** * @return the widthAlgorithm */ public AxisAlgorithm getWidthAlgorithm() { return this.widthAlgorithm; } /** * @param widthAlgorithm * the widthAlgorithm to set */ public void setWidthAlgorithm(AxisAlgorithm widthAlgorithm) { checkAxisAlgorithm(widthAlgorithm); this.widthAlgorithm = widthAlgorithm; } /** * @return the pageAlgorithm */ public PageAlgorithm getPageAlgorithm() { return this.pageAlgorithm; } /** * @param pageAlgorithm * the pageAlgorithm to set */ public void setPageAlgorithm(PageAlgorithm pageAlgorithm) { checkPageAlgorithm(pageAlgorithm); this.pageAlgorithm = pageAlgorithm; } /** * @return the footerLine */ public float getFooterLine() { return this.footerLine; } /** * @param footerLine * the footerLine to set */ public void setFooterLine(float footerLine) { this.footerLine = footerLine; } }