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"; 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); } } 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); } } public static PdfAs getPdfAsFromContext(ServletContext servletContext) { return (PdfAs)servletContext.getAttribute(PDF_AS_OBJECT); } public static PdfAsInternal getPdfAsInternalFromContext(ServletContext servletContext) { return (PdfAsInternal)servletContext.getAttribute(INTERNAL_PDF_AS_OBJECT); } }