1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package net.sourceforge.javadpkg.plugin.impl;
20
21 import java.io.File;
22 import java.io.IOException;
23
24 import org.apache.maven.plugin.logging.Log;
25
26 import net.sourceforge.javadpkg.Context;
27 import net.sourceforge.javadpkg.Copyright;
28 import net.sourceforge.javadpkg.CopyrightLicense;
29 import net.sourceforge.javadpkg.CopyrightParser;
30 import net.sourceforge.javadpkg.FilesCopyright;
31 import net.sourceforge.javadpkg.ParseException;
32 import net.sourceforge.javadpkg.impl.CopyrightImpl;
33 import net.sourceforge.javadpkg.impl.CopyrightLicenseImpl;
34 import net.sourceforge.javadpkg.impl.CopyrightParserImpl;
35 import net.sourceforge.javadpkg.impl.FilesCopyrightImpl;
36 import net.sourceforge.javadpkg.io.DataSource;
37 import net.sourceforge.javadpkg.io.impl.DataFileSource;
38 import net.sourceforge.javadpkg.plugin.CopyrightConfigurationParser;
39 import net.sourceforge.javadpkg.plugin.cfg.CopyrightConfiguration;
40 import net.sourceforge.javadpkg.plugin.cfg.CopyrightFilesConfiguration;
41 import net.sourceforge.javadpkg.plugin.cfg.CopyrightLicenseConfiguration;
42
43
44
45
46
47
48
49
50
51
52 public class CopyrightConfigurationParserImpl implements CopyrightConfigurationParser {
53
54
55
56 private CopyrightParser copyrightParser;
57
58
59
60
61
62
63
64
65
66
67 public CopyrightConfigurationParserImpl() {
68 super();
69
70 this.copyrightParser = new CopyrightParserImpl();
71 }
72
73
74 @Override
75 public Copyright parseCopyrightConfiguration(Log log, CopyrightConfiguration config, Context context)
76 throws IOException, ParseException {
77
78 Copyright copyright;
79 File file;
80
81
82 if (config == null)
83 throw new IllegalArgumentException("Argument config is null.");
84 if (context == null)
85 throw new IllegalArgumentException("Argument context is null.");
86
87 file = config.getFile();
88 if (file != null) {
89 copyright = this.parseFile(log, file, context);
90 } else {
91 copyright = this.parseConfiguration(log, config, context);
92 }
93
94 return copyright;
95 }
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115 private Copyright parseFile(Log log, File file, Context context) throws IOException, ParseException {
116 Copyright copyright;
117
118
119 if (log.isInfoEnabled()) {
120 log.info("Read copyright from file |" + file.getAbsolutePath() + "|.");
121 }
122 try {
123 try (DataSource source = new DataFileSource(file)) {
124 copyright = this.copyrightParser.parseCopyright(source, context);
125 }
126 } catch (IOException e) {
127 throw new IOException("Couldn't parse the copyright file |" + file.getAbsolutePath() + "|: " + e.getMessage(), e);
128 } catch (ParseException e) {
129 throw new IOException("Couldn't parse the copyright file |" + file.getAbsolutePath() + "|: " + e.getMessage(), e);
130 }
131 return copyright;
132 }
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150 private Copyright parseConfiguration(Log log, CopyrightConfiguration config, Context context) throws ParseException {
151 CopyrightImpl copyright;
152 FilesCopyright filesCopyright;
153 CopyrightLicense license;
154
155
156 if (log.isInfoEnabled()) {
157 log.info("Read copyright from configuration.");
158 }
159 copyright = new CopyrightImpl();
160 copyright.setUpstreamName(config.getUpstreamName());
161 copyright.setUpstreamContact(config.getUpstreamContact());
162 copyright.setSource(config.getSource());
163 copyright.setDisclaimer(config.getDisclaimer());
164 copyright.setComment(config.getComment());
165 copyright.setLicense(this.parseLicenseConfiguration(config.getLicense(), context));
166 copyright.setCopyright(config.getCopyright());
167 for (CopyrightFilesConfiguration cfg : config.getFiles()) {
168 filesCopyright = this.parseFilesConfiguration(cfg, context);
169 copyright.addFilesCopyright(filesCopyright);
170 }
171 for (CopyrightLicenseConfiguration cfg : config.getLicenses()) {
172 license = this.parseLicenseConfiguration(cfg, context);
173 copyright.addLicense(license);
174 }
175 return copyright;
176 }
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192 private CopyrightLicense parseLicenseConfiguration(CopyrightLicenseConfiguration config, Context context)
193 throws ParseException {
194
195 CopyrightLicenseImpl license;
196
197
198 if (config == null)
199 return null;
200
201 license = new CopyrightLicenseImpl();
202 license.setName(config.getName());
203 license.setText(config.getText());
204
205 return license;
206 }
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222 private FilesCopyright parseFilesConfiguration(CopyrightFilesConfiguration config, Context context) throws ParseException {
223 FilesCopyrightImpl files;
224
225
226 if (config == null)
227 return null;
228
229 files = new FilesCopyrightImpl();
230 files.setFiles(config.getFiles());
231 files.setCopyright(config.getCopyright());
232 files.setLicense(this.parseLicenseConfiguration(config.getLicense(), context));
233 files.setComment(config.getComment());
234
235 return files;
236 }
237
238
239 }