/**
* Copyright 2006 by Know-Center, Graz, Austria
* PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
* joint initiative of the Federal Chancellery Austria and Graz University of
* Technology.
*
* Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
* the European Commission - subsequent versions of the EUPL (the "Licence");
* You may not use this work except in compliance with the Licence.
* You may obtain a copy of the Licence at:
* http://www.osor.eu/eupl/
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the Licence is distributed on an "AS IS" basis,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the Licence for the specific language governing permissions and
* limitations under the Licence.
*
* This product combines work with different licenses. See the "NOTICE" text
* file for details on the various modules and licenses.
* The "NOTICE" text file is part of the distribution. Any derivative works
* that you distribute must include a readable copy of the "NOTICE" text file.
*
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);
}
}