/** * Copyright (c) 2013-2016, The SeedStack authors <http://seedstack.org> * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ package org.seedstack.io.jasper.internal; import net.sf.jasperreports.engine.design.JasperDesign; import net.sf.jasperreports.engine.xml.JRXmlLoader; import org.seedstack.io.jasper.JasperTemplate; import org.seedstack.io.spi.AbstractBaseStaticTemplateLoader; import org.seedstack.seed.SeedException; import java.net.URL; class JasperStaticTemplateLoader extends AbstractBaseStaticTemplateLoader<JasperTemplate> { @Override public String templatePathRegex() { return "(.+)\\.jrxml"; } @Override public JasperTemplate load(String name) { URL url = templateURLs.get(name); if (url != null) { JasperDesign jasperDesign; try { jasperDesign = JRXmlLoader.load(url.openStream()); } catch (Exception e) { throw SeedException.wrap(e, JasperErrorCode.ERROR_LOADING_JASPER_REPORT) .put("template", name) .put("url", url.toExternalForm()); } return new JasperTemplate(jasperDesign, url.getFile()); } else { return null; } } @Override public String templateRenderer() { return "JasperRenderer"; } @Override public String templateParser() { return null; } }