[LIB-4] Add hespiff source files
[hespiff.git] / src / main / java / org / hedgecode / xml / xspf / XSPFTrack.java
diff --git a/src/main/java/org/hedgecode/xml/xspf/XSPFTrack.java b/src/main/java/org/hedgecode/xml/xspf/XSPFTrack.java
new file mode 100644 (file)
index 0000000..d844507
--- /dev/null
@@ -0,0 +1,264 @@
+/*
+ * Copyright (c) 2015. Developed by Hedgecode.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.hedgecode.xml.xspf;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ *
+ *
+ * @author Dmitry Samoshin aka gotty
+ */
+public final class XSPFTrack implements Track {
+
+    protected XSPFTrack() {
+    }
+
+    /**
+     *
+     */
+    private List<String> locations = new ArrayList<>();
+
+    /**
+     *
+     */
+    private List<String> identifiers = new ArrayList<>();
+
+    /**
+     *
+     */
+    private String title;
+
+    /**
+     *
+     */
+    private String creator;
+
+    /**
+     *
+     */
+    private String annotation;
+
+    /**
+     *
+     */
+    private String info;
+
+    /**
+     *
+     */
+    private String image;
+
+    /**
+     *
+     */
+    private String album;
+
+    /**
+     *
+     */
+    private Integer trackNum;
+
+    /**
+     *
+     */
+    private Integer duration;
+
+    /**
+     *
+     */
+    private List<Link> links = new ArrayList<>();
+
+    /**
+     *
+     */
+    private List<Meta> metas = new ArrayList<>();
+
+    /**
+     *
+     */
+    private List<Extension> extensions = new ArrayList<>();
+
+    @Override
+    public List<String> getLocations() {
+        return locations;
+    }
+
+    @Override
+    public void addLocation(String location) {
+        locations.add(location);
+    }
+
+    @Override
+    public List<String> getIdentifiers() {
+        return identifiers;
+    }
+
+    @Override
+    public void addIdentifier(String identifier) {
+        identifiers.add(identifier);
+    }
+
+    @Override
+    public String getTitle() {
+        return title;
+    }
+
+    @Override
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    @Override
+    public String getCreator() {
+        return creator;
+    }
+
+    @Override
+    public void setCreator(String creator) {
+        this.creator = creator;
+    }
+
+    @Override
+    public String getAnnotation() {
+        return annotation;
+    }
+
+    @Override
+    public void setAnnotation(String annotation) {
+        this.annotation = annotation;
+    }
+
+    @Override
+    public String getInfo() {
+        return info;
+    }
+
+    @Override
+    public void setInfo(String info) {
+        this.info = info;
+    }
+
+    @Override
+    public String getImage() {
+        return image;
+    }
+
+    @Override
+    public void setImage(String image) {
+        this.image = image;
+    }
+
+    @Override
+    public String getAlbum() {
+        return album;
+    }
+
+    @Override
+    public void setAlbum(String album) {
+        this.album = album;
+    }
+
+    @Override
+    public Integer getTrackNum() {
+        return trackNum;
+    }
+
+    @Override
+    public void setTrackNum(Integer trackNum) {
+        this.trackNum = trackNum;
+    }
+
+    @Override
+    public Integer getDuration() {
+        return duration;
+    }
+
+    @Override
+    public void setDuration(Integer duration) {
+        this.duration = duration;
+    }
+
+    @Override
+    public List<Link> getLinks() {
+        return links;
+    }
+
+    @Override
+    public void addLink(Link link) {
+        links.add(link);
+    }
+
+    @Override
+    public List<Meta> getMetas() {
+        return metas;
+    }
+
+    @Override
+    public void addMeta(Meta meta) {
+        metas.add(meta);
+    }
+
+    @Override
+    public List<Extension> getExtensions() {
+        return extensions;
+    }
+
+    @Override
+    public void addExtension(Extension extension) {
+        extensions.add(extension);
+    }
+
+    protected void bind(XMLBindTrack bindTrack) {
+        for (String location : locations)
+            bindTrack.addLocation(location);
+        for (String identifier : identifiers)
+            bindTrack.addIdentifier(identifier);
+        bindTrack.setTitle(title);
+        bindTrack.setCreator(creator);
+        bindTrack.setAnnotation(annotation);
+        bindTrack.setInfo(info);
+        bindTrack.setImage(image);
+        bindTrack.setAlbum(album);
+        bindTrack.setTrackNum(trackNum);
+        bindTrack.setDuration(duration);
+        for (Link link : links)
+            bindTrack.addLink(link);
+        for (Meta meta :metas)
+            bindTrack.addMeta(meta);
+        for (Extension extension : extensions)
+            bindTrack.addExtension(extension);
+    }
+
+    protected void unbind(XMLBindTrack bindTrack) {
+        locations = bindTrack.getLocations();
+        identifiers = bindTrack.getIdentifiers();
+        title = bindTrack.getTitle();
+        creator = bindTrack.getCreator();
+        annotation = bindTrack.getAnnotation();
+        info = bindTrack.getInfo();
+        image = bindTrack.getImage();
+        album = bindTrack.getAlbum();
+        trackNum = bindTrack.getTrackNum();
+        duration = bindTrack.getDuration();
+        links = bindTrack.getLinks();
+        metas = bindTrack.getMetas();
+        extensions = bindTrack.getExtensions();
+    }
+
+}