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 this information...
34 String test
= meta
.getTitle() == null ?
"" : meta
.getTitle();
35 test
+= meta
.getAuthor() == null ?
"" : meta
.getAuthor();
36 test
+= meta
.getDate() == null ?
"" : meta
.getDate();
38 MetaData superMeta
= super.getMeta(source
, reset(in
));
39 if (meta
.getTitle() == null || meta
.getTitle().isEmpty()) {
40 meta
.setTitle(superMeta
.getTitle());
42 if (meta
.getAuthor() == null || meta
.getAuthor().isEmpty()) {
43 meta
.setAuthor(superMeta
.getAuthor());
45 if (meta
.getDate() == null || meta
.getDate().isEmpty()) {
46 meta
.setDate(superMeta
.getDate());
52 } catch (URISyntaxException e
) {
53 throw new IOException("Cannot parse URL to file: " + source
, e
);
58 protected boolean supports(URL url
) {
59 if ("file".equals(url
.getProtocol())) {
62 file
= new File(url
.toURI());
63 file
= new File(file
.getPath() + ".info");
64 } catch (URISyntaxException e
) {
69 return file
!= null && file
.exists();