Added Android code
[wl-app.git] / Android / r2-streamer / r2-parser / src / main / java / org / readium / r2_streamer / model / publication / EpubPublication.java
1 package org.readium.r2_streamer.model.publication;
2
3 import org.readium.r2_streamer.model.publication.link.Link;
4 import org.readium.r2_streamer.model.publication.metadata.MetaData;
5 import org.readium.r2_streamer.model.tableofcontents.TOCLink;
6
7 import com.fasterxml.jackson.annotation.JsonIgnore;
8 import com.fasterxml.jackson.annotation.JsonProperty;
9
10 import java.io.Serializable;
11 import java.util.ArrayList;
12 import java.util.Arrays;
13 import java.util.HashMap;
14 import java.util.List;
15
16 /**
17  * Created by Shrikant Badwaik on 25-Jan-17.
18  */
19
20 public class EpubPublication implements Serializable{
21     private static final long serialVersionUID = 3336472295622776147L;
22
23     @JsonProperty("metadata")
24     public MetaData metadata;
25
26     @JsonIgnore
27     public HashMap<String,Link> linkMap;
28     @JsonProperty("links")
29     public List<Link> links;
30     @JsonIgnore
31     public List<Link> matchingLinks;
32     @JsonProperty("spines")
33     public List<Link> spines;
34     @JsonProperty("resources")
35     public List<Link> resources;
36     @JsonIgnore
37     public List<Link> guides;
38
39     @JsonIgnore
40     public List<Encryption> encryptions;
41
42     //public List<Link> pageList;
43     @JsonProperty("toc")
44     public List<TOCLink> tableOfContents;
45
46     @JsonProperty
47     public List<TOCLink> pageList;
48     @JsonIgnore
49     //public List<Link> landmarks;
50     public Link[] landmarks;
51     @JsonIgnore
52     //public List<Link> LOI;
53     public Link[] LOI;
54     @JsonIgnore
55     //public List<Link> LOA;
56     public Link[] LOA;
57     @JsonIgnore
58     //public List<Link> LOV;
59     public Link[] LOV;
60     @JsonIgnore
61     //public List<Link> LOT;
62     public Link[] LOT;
63
64     public HashMap<String, String> internalData;
65
66     @JsonIgnore
67     //public List<Link> otherLinks;
68     public Link[] otherLinks;
69
70     @JsonProperty("cover")
71     public Link coverLink;
72
73     public EpubPublication() {
74         this.matchingLinks = new ArrayList<>();
75         this.links = new ArrayList<>();
76         this.spines = new ArrayList<>();
77         this.encryptions = new ArrayList<>();
78         this.resources = new ArrayList<>();
79         this.guides= new ArrayList<>();
80         this.internalData = new HashMap<>();
81
82         this.linkMap = new HashMap<>();
83     }
84
85     @Override
86     public String toString() {
87         return "EpubPublication{" +
88                 "metadata=" + metadata +
89                 ", tableOfContents=" + tableOfContents +
90                 ", linkMap=" + linkMap +
91                 ", links=" + links +
92                 ", matchingLinks=" + matchingLinks +
93                 ", spines=" + spines +
94                 ", encryptions=" + encryptions +
95                 ", resources=" + resources +
96                 ", guides=" + guides +
97                 ", pageList=" + pageList +
98                 ", landmarks=" + Arrays.toString(landmarks) +
99                 ", LOI=" + Arrays.toString(LOI) +
100                 ", LOA=" + Arrays.toString(LOA) +
101                 ", LOV=" + Arrays.toString(LOV) +
102                 ", LOT=" + Arrays.toString(LOT) +
103                 ", internalData=" + internalData +
104                 ", otherLinks=" + Arrays.toString(otherLinks) +
105                 ", coverLink=" + coverLink +
106                 '}';
107     }
108
109     public Link getResourceMimeType(String resourcePath) {
110         if(linkMap.containsKey(resourcePath)){
111             return linkMap.get(resourcePath);
112         }
113         return null;
114     }
115 }