/** * 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.web.helper; import java.io.File; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import javax.servlet.ServletContext; import at.gv.egiz.pdfas.api.PdfAs; import at.gv.egiz.pdfas.api.internal.PdfAsInternal; import at.knowcenter.wag.egov.egiz.exceptions.WebException; /** * Utility methods for easier handling of {@link PdfAs} API object. * * @author exthex * */ public class ApiHelper { public static final String PDF_AS_OBJECT = "PDF_AS_OBJECT"; public static final String INTERNAL_PDF_AS_OBJECT = "INTERNAL_PDF_AS_OBJECT"; /** * Instantiate the {@link PdfAs} implementation. * * @param file config directory * @return * @throws WebException */ public static PdfAs createApiObject(File file) throws WebException { try { Class pdfAsClass = Class.forName("at.gv.egiz.pdfas.impl.api.PdfAsObject"); Constructor constructor = pdfAsClass.getConstructor(new Class[]{File.class}); PdfAs pdfAs = (PdfAs)constructor.newInstance(new Object[]{ new File(WebSettingsReader.RESOURCES_PATH)}); return pdfAs; } catch (ClassNotFoundException e) { throw new WebException(e); } catch (SecurityException e) { throw new WebException(e); } catch (NoSuchMethodException e) { throw new WebException(e); } catch (IllegalArgumentException e) { throw new WebException(e); } catch (InstantiationException e) { throw new WebException(e); } catch (IllegalAccessException e) { throw new WebException(e); } catch (InvocationTargetException e) { throw new WebException(e); } } /** * Instantiate the {@link PdfAsInternal} implementation. * * @return * @throws WebException */ public static PdfAsInternal createInternalApiObject() throws WebException { try { Class pdfAsClass = Class.forName("at.gv.egiz.pdfas.impl.api.internal.PdfAsInternalObject"); PdfAsInternal pdfAsinternal = (PdfAsInternal)pdfAsClass.newInstance(); return pdfAsinternal; } catch (ClassNotFoundException e) { throw new WebException(e); } catch (SecurityException e) { throw new WebException(e); } catch (InstantiationException e) { throw new WebException(e); } catch (IllegalAccessException e) { throw new WebException(e); } } /** * Retrieve the {@link PdfAs} object from the {@link ServletContext} * * @param servletContext * @return */ public static PdfAs getPdfAsFromContext(ServletContext servletContext) { return (PdfAs)servletContext.getAttribute(PDF_AS_OBJECT); } /** * Retrieve the {@link PdfAsInternal} object from the {@link ServletContext} * * @param servletContext * @return */ public static PdfAsInternal getPdfAsInternalFromContext(ServletContext servletContext) { return (PdfAsInternal)servletContext.getAttribute(INTERNAL_PDF_AS_OBJECT); } }