Classes in this File | Line Coverage | Branch Coverage | Complexity | ||||
VelocityEngine |
|
| 1.0;1 |
1 | /** | |
2 | * Licensed to the Apache Software Foundation (ASF) under one | |
3 | * or more contributor license agreements. See the NOTICE file | |
4 | * distributed with this work for additional information | |
5 | * regarding copyright ownership. The ASF licenses this file | |
6 | * to you under the Apache License, Version 2.0 (the | |
7 | * "License"); you may not use this file except in compliance | |
8 | * with the License. You may obtain a copy of the License at | |
9 | * | |
10 | * http://www.apache.org/licenses/LICENSE-2.0 | |
11 | * | |
12 | * Unless required by applicable law or agreed to in writing, | |
13 | * software distributed under the License is distributed on an | |
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
15 | * KIND, either express or implied. See the License for the | |
16 | * specific language governing permissions and limitations | |
17 | * under the License. | |
18 | */ | |
19 | package org.apache.creadur.whisker.out.velocity; | |
20 | ||
21 | import java.util.Collection; | |
22 | ||
23 | import org.apache.commons.logging.Log; | |
24 | import org.apache.creadur.whisker.app.AbstractEngine; | |
25 | import org.apache.creadur.whisker.app.Configuration; | |
26 | import org.apache.creadur.whisker.app.ResultWriterFactory; | |
27 | import org.apache.creadur.whisker.app.analysis.LicenseAnalyst; | |
28 | import org.apache.creadur.whisker.model.Descriptor; | |
29 | import org.apache.creadur.whisker.scan.Directory; | |
30 | ||
31 | /** | |
32 | * Uses Apache Velocity to implement {@link AbstractEngine}. | |
33 | * | |
34 | * @see <a href='http://velocity.apache.org'>Apache Velocity</a> | |
35 | */ | |
36 | public class VelocityEngine extends AbstractEngine { | |
37 | /** Not null. */ | |
38 | private final Log log; | |
39 | ||
40 | /** | |
41 | * Constructs an engine running on Apache Velocity. | |
42 | * @param log not null | |
43 | */ | |
44 | public VelocityEngine(final Log log) { | |
45 | 20 | super(); |
46 | 20 | this.log = log; |
47 | 20 | } |
48 | ||
49 | /** | |
50 | * Generates a template, and writes result using given factory. | |
51 | * @param withBase not null | |
52 | * @param writerFactory not null | |
53 | * @param configuration not null | |
54 | * @return this engine, not null | |
55 | * @throws Exception when generation fails | |
56 | * @see AbstractEngine#skeleton(Collection, ResultWriterFactory, Configuration) | |
57 | */ | |
58 | @Override | |
59 | public final AbstractEngine skeleton( | |
60 | final Collection<Directory> withBase, | |
61 | final ResultWriterFactory writerFactory, | |
62 | final Configuration configuration) | |
63 | throws Exception { | |
64 | 0 | reporter(writerFactory).generateTemplate(withBase); |
65 | 0 | return this; |
66 | } | |
67 | ||
68 | /** | |
69 | * Creates a reporter for the given factory. | |
70 | * @param writerFactory not null | |
71 | * @return a reporter, not null | |
72 | */ | |
73 | private VelocityReports reporter(final ResultWriterFactory writerFactory) { | |
74 | 20 | return new VelocityReports(writerFactory, log); |
75 | } | |
76 | ||
77 | /** | |
78 | * Generates a validation report, and writes result using given factory. | |
79 | * @param analyst not null | |
80 | * @param writerFactory not null | |
81 | * @param configuration not null | |
82 | * @return this, not null | |
83 | * @throws Exception when validation fails | |
84 | * @see AbstractEngine#validate(LicenseAnalyst, ResultWriterFactory, Configuration) | |
85 | */ | |
86 | @Override | |
87 | public final AbstractEngine validate( | |
88 | final LicenseAnalyst analyst, | |
89 | final ResultWriterFactory writerFactory, | |
90 | final Configuration configuration) throws Exception { | |
91 | 0 | reporter(writerFactory).validate(analyst); |
92 | 0 | return this; |
93 | } | |
94 | ||
95 | /** | |
96 | * Generates a directories report, and writes result using given factory. | |
97 | * @param directories not null | |
98 | * @param writerFactory not null | |
99 | * @param configuration not null | |
100 | * @return this, not null | |
101 | * @throws Exception when reporting fails | |
102 | * @see AbstractEngine#report(java.util.Collection, ResultWriterFactory, Configuration) | |
103 | */ | |
104 | @Override | |
105 | public final AbstractEngine report( | |
106 | final Collection<Directory> directories, | |
107 | final ResultWriterFactory writerFactory, | |
108 | final Configuration configuration) throws Exception { | |
109 | 0 | reporter(writerFactory).report(directories); |
110 | 0 | return this; |
111 | } | |
112 | ||
113 | /** | |
114 | * Generates documents, and writes results using given factory. | |
115 | * @param work not null | |
116 | * @param writerFactory not null | |
117 | * @param configuration not null | |
118 | * @return this, not null | |
119 | * @throws Exception when generation fails. | |
120 | * @see AbstractEngine#generate(Descriptor, ResultWriterFactory, Configuration) | |
121 | */ | |
122 | @Override | |
123 | public final AbstractEngine generate( | |
124 | final Descriptor work, | |
125 | final ResultWriterFactory writerFactory, | |
126 | final Configuration configuration) throws Exception { | |
127 | 20 | reporter(writerFactory).generate(work, configuration); |
128 | 20 | return this; |
129 | } | |
130 | } |