/**
*
*/
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);
}
}