1 package be
.nikiroo
.fanfix
.supported
;
4 import java
.io
.IOException
;
5 import java
.io
.InputStream
;
6 import java
.net
.URISyntaxException
;
9 import be
.nikiroo
.fanfix
.Instance
;
10 import be
.nikiroo
.fanfix
.data
.MetaData
;
13 * Support class for <tt>.info</tt> text files ({@link Text} files with a
14 * <tt>.info</tt> metadata file next to them).
16 * The <tt>.info</tt> file is supposed to be written by this program, or
21 class InfoText
extends Text
{
23 public String
getSourceName() {
28 protected MetaData
getMeta(URL source
, InputStream in
) throws IOException
{
30 MetaData meta
= InfoReader
.readMeta(new File(new File(source
31 .toURI()).getPath() + ".info"));
33 // Some old .info files don't have those now required fields...
34 String test
= meta
.getTitle() == null ?
"" : meta
.getTitle();
35 test
+= meta
.getAuthor() == null ?
"" : meta
.getAuthor();
36 test
+= meta
.getDate() == null ?
"" : meta
.getDate();
37 test
+= meta
.getUrl() == null ?
"" : meta
.getUrl();
39 MetaData superMeta
= super.getMeta(source
, reset(in
));
40 if (meta
.getTitle() == null || meta
.getTitle().isEmpty()) {
41 meta
.setTitle(superMeta
.getTitle());
43 if (meta
.getAuthor() == null || meta
.getAuthor().isEmpty()) {
44 meta
.setAuthor(superMeta
.getAuthor());
46 if (meta
.getDate() == null || meta
.getDate().isEmpty()) {
47 meta
.setDate(superMeta
.getDate());
49 if (meta
.getUrl() == null || meta
.getUrl().isEmpty()) {
50 meta
.setUrl(superMeta
.getUrl());
56 } catch (URISyntaxException e
) {
57 throw new IOException("Cannot parse URL to file: " + source
, e
);
62 protected boolean supports(URL url
) {
63 if ("file".equals(url
.getProtocol())) {
66 file
= new File(url
.toURI());
67 file
= new File(file
.getPath() + ".info");
68 } catch (URISyntaxException e
) {
73 return file
!= null && file
.exists();