--- /dev/null
+/*
+ * 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();
+ }
+
+}