[LIB-4] Extend copyright for 2019 year
[hespiff.git] / src / main / java / org / hedgecode / xml / xspf / XSPFTrack.java
1 /*
2  * Copyright (c) 2015-2019. Developed by Hedgecode.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *   http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package org.hedgecode.xml.xspf;
18
19 import java.util.ArrayList;
20 import java.util.List;
21
22 /**
23  *
24  *
25  * @author Dmitry Samoshin aka gotty
26  */
27 public final class XSPFTrack implements Track {
28
29     protected XSPFTrack() {
30     }
31
32     /**
33      *
34      */
35     private List<String> locations = new ArrayList<>();
36
37     /**
38      *
39      */
40     private List<String> identifiers = new ArrayList<>();
41
42     /**
43      *
44      */
45     private String title;
46
47     /**
48      *
49      */
50     private String creator;
51
52     /**
53      *
54      */
55     private String annotation;
56
57     /**
58      *
59      */
60     private String info;
61
62     /**
63      *
64      */
65     private String image;
66
67     /**
68      *
69      */
70     private String album;
71
72     /**
73      *
74      */
75     private Integer trackNum;
76
77     /**
78      *
79      */
80     private Integer duration;
81
82     /**
83      *
84      */
85     private List<Link> links = new ArrayList<>();
86
87     /**
88      *
89      */
90     private List<Meta> metas = new ArrayList<>();
91
92     /**
93      *
94      */
95     private List<Extension> extensions = new ArrayList<>();
96
97     @Override
98     public List<String> getLocations() {
99         return locations;
100     }
101
102     @Override
103     public void addLocation(String location) {
104         locations.add(location);
105     }
106
107     @Override
108     public List<String> getIdentifiers() {
109         return identifiers;
110     }
111
112     @Override
113     public void addIdentifier(String identifier) {
114         identifiers.add(identifier);
115     }
116
117     @Override
118     public String getTitle() {
119         return title;
120     }
121
122     @Override
123     public void setTitle(String title) {
124         this.title = title;
125     }
126
127     @Override
128     public String getCreator() {
129         return creator;
130     }
131
132     @Override
133     public void setCreator(String creator) {
134         this.creator = creator;
135     }
136
137     @Override
138     public String getAnnotation() {
139         return annotation;
140     }
141
142     @Override
143     public void setAnnotation(String annotation) {
144         this.annotation = annotation;
145     }
146
147     @Override
148     public String getInfo() {
149         return info;
150     }
151
152     @Override
153     public void setInfo(String info) {
154         this.info = info;
155     }
156
157     @Override
158     public String getImage() {
159         return image;
160     }
161
162     @Override
163     public void setImage(String image) {
164         this.image = image;
165     }
166
167     @Override
168     public String getAlbum() {
169         return album;
170     }
171
172     @Override
173     public void setAlbum(String album) {
174         this.album = album;
175     }
176
177     @Override
178     public Integer getTrackNum() {
179         return trackNum;
180     }
181
182     @Override
183     public void setTrackNum(Integer trackNum) {
184         this.trackNum = trackNum;
185     }
186
187     @Override
188     public Integer getDuration() {
189         return duration;
190     }
191
192     @Override
193     public void setDuration(Integer duration) {
194         this.duration = duration;
195     }
196
197     @Override
198     public List<Link> getLinks() {
199         return links;
200     }
201
202     @Override
203     public void addLink(Link link) {
204         links.add(link);
205     }
206
207     @Override
208     public List<Meta> getMetas() {
209         return metas;
210     }
211
212     @Override
213     public void addMeta(Meta meta) {
214         metas.add(meta);
215     }
216
217     @Override
218     public List<Extension> getExtensions() {
219         return extensions;
220     }
221
222     @Override
223     public void addExtension(Extension extension) {
224         extensions.add(extension);
225     }
226
227     protected void bind(XMLBindTrack bindTrack) {
228         for (String location : locations)
229             bindTrack.addLocation(location);
230         for (String identifier : identifiers)
231             bindTrack.addIdentifier(identifier);
232         bindTrack.setTitle(title);
233         bindTrack.setCreator(creator);
234         bindTrack.setAnnotation(annotation);
235         bindTrack.setInfo(info);
236         bindTrack.setImage(image);
237         bindTrack.setAlbum(album);
238         bindTrack.setTrackNum(trackNum);
239         bindTrack.setDuration(duration);
240         for (Link link : links)
241             bindTrack.addLink(link);
242         for (Meta meta :metas)
243             bindTrack.addMeta(meta);
244         for (Extension extension : extensions)
245             bindTrack.addExtension(extension);
246     }
247
248     protected void unbind(XMLBindTrack bindTrack) {
249         locations = bindTrack.getLocations();
250         identifiers = bindTrack.getIdentifiers();
251         title = bindTrack.getTitle();
252         creator = bindTrack.getCreator();
253         annotation = bindTrack.getAnnotation();
254         info = bindTrack.getInfo();
255         image = bindTrack.getImage();
256         album = bindTrack.getAlbum();
257         trackNum = bindTrack.getTrackNum();
258         duration = bindTrack.getDuration();
259         links = bindTrack.getLinks();
260         metas = bindTrack.getMetas();
261         extensions = bindTrack.getExtensions();
262     }
263
264 }