/* * 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 locations = new ArrayList<>(); /** * */ private List 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 links = new ArrayList<>(); /** * */ private List metas = new ArrayList<>(); /** * */ private List extensions = new ArrayList<>(); @Override public List getLocations() { return locations; } @Override public void addLocation(String location) { locations.add(location); } @Override public List 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 getLinks() { return links; } @Override public void addLink(Link link) { links.add(link); } @Override public List getMetas() { return metas; } @Override public void addMeta(Meta meta) { metas.add(meta); } @Override public List 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(); } }