/** * */ package at.gv.egiz.pdfas; import java.io.File; import at.gv.egiz.pdfas.api.PdfAs; import at.gv.egiz.pdfas.api.exceptions.PdfAsException; import at.gv.egiz.pdfas.impl.api.PdfAsObject; import at.knowcenter.wag.egov.egiz.PdfAS; import at.knowcenter.wag.egov.egiz.cfg.SettingsReader; /** * Main factory for creating a PDF-AS API Instance (PdfAs Interface). * * @see PdfAs * * @author wprinz */ public class PdfAsFactory { /** * Creates a PDF-AS API instance for the given work directory. * * @param workDirectory * The work directory. If null the configuration is assumed to be located * within the user's home directory. Note: IAIK JCE and IAIK ECC security provders are * automatically registered. * * @return Returns an instance of the PDF-AS API. * @throws IllegalArgumentException * Thrown, if the workDirectory doesn't exist. * @throws PdfAsException * Thrown, if the work directory does not meet its requirements, or * if the config file is invalid. * @see PdfAS#USERHOME_CONFIG_FOLDER */ public static PdfAs createPdfAs(File workDirectory) throws PdfAsException { return createPdfAs(workDirectory, SettingsReader.REGISTER_IAIK_PROVIDERS_ON_DEFAULT); } /** * Creates a PDF-AS API instance for the given work directory. * * @param workDirectory * The work directory. If null the configuration is assumed to be located * within the user's home directory. * * @param registerProvider true: automatically registers IAIK JCE and ECC Provider; * false: providers will NOT be automatically registered, providers * needed have to be registered by the API user * @return Returns an instance of the PDF-AS API. * @throws IllegalArgumentException * Thrown, if the workDirectory doesn't exist. * @throws PdfAsException * Thrown, if the work directory does not meet its requirements, or * if the config file is invalid. * @see PdfAS#USERHOME_CONFIG_FOLDER */ public static PdfAs createPdfAs(File workDirectory, boolean registerProvider) throws PdfAsException { return new PdfAsObject(workDirectory, registerProvider); } /** * Creates a PDF-AS API instance assuming that the configuration is located within the user's * home directory. Note: IAIK JCE and IAIK ECC security providers are automatically registered. * * @return Returns an instance of the PDF-AS API. * @throws IllegalArgumentException * Thrown, if the work directory doesn't exist within the user's home directory. * @throws PdfAsException * Thrown, if the work directory does not meet its requirements, or * if the config file is invalid. * @see PdfAS#USERHOME_CONFIG_FOLDER */ public static PdfAs createPdfAs() throws PdfAsException { return createPdfAs(null); } /** * Creates a PDF-AS API instance assuming that the configuration is located within the user's * home directory. * * @return Returns an instance of the PDF-AS API. * @param registerProvider true: automatically registers IAIK JCE and ECC Provider; * false: providers will NOT be automatically registered, providers * needed have to be registered by the API user * @throws IllegalArgumentException * Thrown, if the work directory doesn't exist within the user's home directory. * @throws PdfAsException * Thrown, if the work directory does not meet its requirements, or * if the config file is invalid. * @see PdfAS#USERHOME_CONFIG_FOLDER */ public static PdfAs createPdfAs(boolean registerProvider) throws PdfAsException { return createPdfAs(null, registerProvider); } }