1. Project Clover database Wed Jan 17 2024 23:40:18 CST
  2. Package org.europa.together.application

File VelocityRenderer.java

 

Coverage histogram

../../../../img/srcFileCovDistChart10.png
0% of files have more coverage

Code metrics

2
25
5
1
87
72
6
0.24
5
5
1.2

Classes

Class Line # Actions
VelocityRenderer 22 25 0% 6 0
1.0100%
 

Contributing tests

This file is covered by 7 tests. .

Source view

1    package org.europa.together.application;
2   
3    import java.io.StringWriter;
4    import java.util.Map;
5    import org.apache.velocity.Template;
6    import org.apache.velocity.VelocityContext;
7    import org.apache.velocity.app.Velocity;
8    import org.apache.velocity.app.VelocityEngine;
9    import org.apache.velocity.runtime.RuntimeConstants;
10    import org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader;
11    import org.apache.velocity.runtime.resource.loader.StringResourceLoader;
12    import org.apache.velocity.runtime.resource.util.StringResourceRepository;
13    import org.europa.together.business.Logger;
14    import org.europa.together.domain.LogLevel;
15    import org.springframework.stereotype.Repository;
16    import org.europa.together.business.TemplateRenderer;
17   
18    /**
19    * Implementation of a Template Renderer.
20    */
21    @Repository
 
22    public class VelocityRenderer implements TemplateRenderer {
23   
24    private static final long serialVersionUID = 3L;
25    private static final Logger LOGGER = new LogbackLogger(VelocityRenderer.class);
26   
27    private VelocityEngine engine = new VelocityEngine();
28   
29    /**
30    * Constructor.
31    */
 
32  7 toggle public VelocityRenderer() {
33  7 LOGGER.log("instance class", LogLevel.INFO);
34    }
35   
 
36  2 toggle @Override
37    public String loadContentByClasspathResource(final String resourcePath,
38    final String template,
39    final Map<String, String> properties) {
40  2 engine.setProperty(RuntimeConstants.RESOURCE_LOADER, "classpath");
41  2 engine.setProperty("classpath.resource.loader.class",
42    ClasspathResourceLoader.class.getName());
43  2 engine.init();
44  2 return processContent(resourcePath + template, properties);
45    }
46   
 
47  2 toggle @Override
48    public String loadContentByFileResource(final String resourcePath,
49    final String template,
50    final Map<String, String> properties) {
51  2 engine.setProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, resourcePath);
52  2 engine.init();
53  2 return processContent(template, properties);
54    }
55   
 
56  3 toggle @Override
57    public String loadContentByStringResource(final String resource,
58    final Map<String, String> properties) {
59  3 engine.setProperty(Velocity.RESOURCE_LOADER, "string");
60  3 engine.addProperty("string.resource.loader.class",
61    StringResourceLoader.class.getName());
62  3 engine.addProperty("string.resource.loader.repository.static", "false");
63  3 engine.init();
64  3 StringResourceRepository templateRepository
65    = (StringResourceRepository) engine
66    .getApplicationAttribute(StringResourceLoader.REPOSITORY_NAME_DEFAULT);
67  3 templateRepository.putStringResource("stringResource", resource);
68  3 return processContent("stringResource", properties);
69    }
70   
 
71  7 toggle private String processContent(final String resource,
72    final Map<String, String> properties) {
73  7 Template template = engine.getTemplate(resource);
74  5 StringWriter writer = new StringWriter();
75  5 writer.flush();
76  5 VelocityContext context = new VelocityContext();
77  5 if (properties != null) {
78  4 for (Map.Entry<String, String> entry : properties.entrySet()) {
79  4 context.put(entry.getKey(), entry.getValue());
80    }
81    } else {
82  1 context.put("__init__", "");
83    }
84  5 template.merge(context, writer);
85  5 return writer.toString();
86    }
87    }