Package org.motechproject.mots.service
Class JasperTemplateService
- java.lang.Object
-
- org.motechproject.mots.service.JasperTemplateService
-
@Service public class JasperTemplateService extends java.lang.Object
This class is responsible for managingJasperTemplate
(i.e. creation, read, update, deletion). Also it is used for conversion of template files, because they are stored in the db in HEX format.
-
-
Field Summary
Fields Modifier and Type Field Description protected static java.lang.String
REPORT_TYPE_PROPERTY
protected static java.lang.String
SUPPORTED_FORMATS_PROPERTY
-
Constructor Summary
Constructors Constructor Description JasperTemplateService(JasperTemplateRepository jasperTemplateRepository)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected net.sf.jasperreports.engine.JasperReport
compileReport(java.io.InputStream inputStream)
java.util.Map<java.lang.String,java.lang.Object>
mapRequestParametersToTemplate(javax.servlet.http.HttpServletRequest request, JasperTemplate template)
Map request parameters to the template parameters in the template.JasperTemplate
saveJsonOutput(JasperTemplate jasperTemplate, java.lang.String jsonOutput)
Updates the json output and version in a report template.JasperTemplate
saveTemplate(org.springframework.web.multipart.MultipartFile file, java.lang.String name, java.lang.String description)
Saves a template with given name.protected void
saveWithParameters(JasperTemplate jasperTemplate)
Insert template and template parameters to database.protected void
validateFileAndInsertTemplate(JasperTemplate jasperTemplate, org.springframework.web.multipart.MultipartFile file)
Validate ".jrmxl" file and insert this template to database.protected void
validateFileAndSaveTemplate(JasperTemplate jasperTemplate, org.springframework.web.multipart.MultipartFile file)
Validate ".jrmxl" file and insert if template not exist.protected byte[]
writeReportToByteArray(net.sf.jasperreports.engine.JasperReport report)
-
-
-
Field Detail
-
REPORT_TYPE_PROPERTY
protected static final java.lang.String REPORT_TYPE_PROPERTY
- See Also:
- Constant Field Values
-
SUPPORTED_FORMATS_PROPERTY
protected static final java.lang.String SUPPORTED_FORMATS_PROPERTY
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
JasperTemplateService
@Autowired public JasperTemplateService(JasperTemplateRepository jasperTemplateRepository)
-
-
Method Detail
-
saveTemplate
public JasperTemplate saveTemplate(org.springframework.web.multipart.MultipartFile file, java.lang.String name, java.lang.String description)
Saves a template with given name. If template already exists, only description and required rights are updated.- Parameters:
file
- report filename
- name of reportdescription
- report's description- Returns:
- saved report template
-
saveJsonOutput
public JasperTemplate saveJsonOutput(JasperTemplate jasperTemplate, java.lang.String jsonOutput)
Updates the json output and version in a report template.- Parameters:
jasperTemplate
- the report's templatejsonOutput
- the json output of given template- Returns:
- saved report template
-
mapRequestParametersToTemplate
public java.util.Map<java.lang.String,java.lang.Object> mapRequestParametersToTemplate(javax.servlet.http.HttpServletRequest request, JasperTemplate template)
Map request parameters to the template parameters in the template. If there are no template parameters, returns an empty Map.- Parameters:
request
- request with parameterstemplate
- template with parameters- Returns:
- Map of matching parameters, empty Map if none match
-
validateFileAndInsertTemplate
protected void validateFileAndInsertTemplate(JasperTemplate jasperTemplate, org.springframework.web.multipart.MultipartFile file)
Validate ".jrmxl" file and insert this template to database. Throws reporting exception if an error occurs during file validation or parsing.- Parameters:
jasperTemplate
- template to fill datafile
- file to validate
-
saveWithParameters
protected void saveWithParameters(JasperTemplate jasperTemplate)
Insert template and template parameters to database.- Parameters:
jasperTemplate
- template to save
-
validateFileAndSaveTemplate
protected void validateFileAndSaveTemplate(JasperTemplate jasperTemplate, org.springframework.web.multipart.MultipartFile file)
Validate ".jrmxl" file and insert if template not exist. If this name of template already exist, remove older template and insert new.- Parameters:
file
- file to validatejasperTemplate
- template to save
-
compileReport
protected net.sf.jasperreports.engine.JasperReport compileReport(java.io.InputStream inputStream) throws net.sf.jasperreports.engine.JRException
- Throws:
net.sf.jasperreports.engine.JRException
-
writeReportToByteArray
protected byte[] writeReportToByteArray(net.sf.jasperreports.engine.JasperReport report) throws java.io.IOException
- Throws:
java.io.IOException
-
-