467 lines
7.4 KiB
Java
467 lines
7.4 KiB
Java
/*
|
|
This file is part of Subsonic.
|
|
|
|
Subsonic is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
Subsonic is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with Subsonic. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
Copyright 2009 (C) Sindre Mehus
|
|
*/
|
|
package com.thejoshwa.ultrasonic.androidapp.domain;
|
|
|
|
import java.io.Serializable;
|
|
import java.text.ParseException;
|
|
import java.text.SimpleDateFormat;
|
|
import java.util.ArrayList;
|
|
import java.util.Collection;
|
|
import java.util.Date;
|
|
import java.util.List;
|
|
import java.util.Locale;
|
|
|
|
/**
|
|
* @author Sindre Mehus
|
|
*/
|
|
public class MusicDirectory
|
|
{
|
|
|
|
private String name;
|
|
private final List<Entry> children = new ArrayList<Entry>();
|
|
|
|
public String getName()
|
|
{
|
|
return name;
|
|
}
|
|
|
|
public void setName(String name)
|
|
{
|
|
this.name = name;
|
|
}
|
|
|
|
public void addAll(Collection<Entry> entries)
|
|
{
|
|
children.addAll(entries);
|
|
}
|
|
|
|
public void addFirst(Entry child)
|
|
{
|
|
children.add(0, child);
|
|
}
|
|
|
|
public void addChild(Entry child)
|
|
{
|
|
children.add(child);
|
|
}
|
|
|
|
public List<Entry> getChildren()
|
|
{
|
|
return getChildren(true, true);
|
|
}
|
|
|
|
public Entry findChild(String id)
|
|
{
|
|
Entry entry = null;
|
|
|
|
for (Entry song : getChildren())
|
|
{
|
|
if (song.getId().equals(id))
|
|
{
|
|
entry = song;
|
|
}
|
|
}
|
|
|
|
return entry;
|
|
}
|
|
|
|
public List<Entry> getChildren(boolean includeDirs, boolean includeFiles)
|
|
{
|
|
if (includeDirs && includeFiles)
|
|
{
|
|
return children;
|
|
}
|
|
|
|
List<Entry> result = new ArrayList<Entry>(children.size());
|
|
for (Entry child : children)
|
|
{
|
|
if (child.isDirectory() && includeDirs || !child.isDirectory() && includeFiles)
|
|
{
|
|
result.add(child);
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
|
|
public static class Entry implements Serializable
|
|
{
|
|
/**
|
|
*
|
|
*/
|
|
private static final long serialVersionUID = -3339106650010798108L;
|
|
/**
|
|
*
|
|
*/
|
|
private String id;
|
|
private String parent;
|
|
private boolean isDirectory;
|
|
private String title;
|
|
private String album;
|
|
private String albumId;
|
|
private String artist;
|
|
private String artistId;
|
|
private Integer track;
|
|
private Integer year;
|
|
private String genre;
|
|
private String contentType;
|
|
private String suffix;
|
|
private String transcodedContentType;
|
|
private String transcodedSuffix;
|
|
private String coverArt;
|
|
private Long size;
|
|
private Long songCount;
|
|
private Integer duration;
|
|
private Integer bitRate;
|
|
private String path;
|
|
private boolean isVideo;
|
|
private boolean isStarred;
|
|
private Integer discNumber;
|
|
private String type;
|
|
private Date created;
|
|
private int closeness;
|
|
private int bookmarkPosition;
|
|
|
|
public Integer getDiscNumber()
|
|
{
|
|
return discNumber;
|
|
}
|
|
|
|
public void setDiscNumber(Integer discNumber)
|
|
{
|
|
this.discNumber = discNumber;
|
|
}
|
|
|
|
public boolean getStarred()
|
|
{
|
|
return isStarred;
|
|
}
|
|
|
|
public void setStarred(boolean starred)
|
|
{
|
|
this.isStarred = starred;
|
|
}
|
|
|
|
public String getId()
|
|
{
|
|
return id;
|
|
}
|
|
|
|
public void setId(String id)
|
|
{
|
|
this.id = id;
|
|
}
|
|
|
|
public String getParent()
|
|
{
|
|
return parent;
|
|
}
|
|
|
|
public void setParent(String parent)
|
|
{
|
|
this.parent = parent;
|
|
}
|
|
|
|
public boolean isDirectory()
|
|
{
|
|
return isDirectory;
|
|
}
|
|
|
|
public void setIsDirectory(boolean directory)
|
|
{
|
|
this.isDirectory = directory;
|
|
}
|
|
|
|
public String getTitle()
|
|
{
|
|
return title;
|
|
}
|
|
|
|
public void setTitle(String title)
|
|
{
|
|
this.title = title;
|
|
}
|
|
|
|
public String getAlbum()
|
|
{
|
|
return album;
|
|
}
|
|
|
|
public void setAlbum(String album)
|
|
{
|
|
this.album = album;
|
|
}
|
|
|
|
public String getAlbumId()
|
|
{
|
|
return albumId;
|
|
}
|
|
|
|
public void setAlbumId(String albumId)
|
|
{
|
|
this.albumId = albumId;
|
|
}
|
|
|
|
public String getArtist()
|
|
{
|
|
return artist;
|
|
}
|
|
|
|
public void setArtist(String artist)
|
|
{
|
|
this.artist = artist;
|
|
}
|
|
|
|
public String getArtistId()
|
|
{
|
|
return artistId;
|
|
}
|
|
|
|
public void setArtistId(String artistId)
|
|
{
|
|
this.artistId = artistId;
|
|
}
|
|
|
|
public Integer getTrack()
|
|
{
|
|
return track == null ? 0 : track;
|
|
}
|
|
|
|
public void setTrack(Integer track)
|
|
{
|
|
this.track = track;
|
|
}
|
|
|
|
public Long getSongCount()
|
|
{
|
|
return songCount;
|
|
}
|
|
|
|
public void setSongCount(Long songCount)
|
|
{
|
|
this.songCount = songCount;
|
|
}
|
|
|
|
public Integer getYear()
|
|
{
|
|
return year == null ? 0 : year;
|
|
}
|
|
|
|
public void setYear(Integer year)
|
|
{
|
|
this.year = year;
|
|
}
|
|
|
|
public String getGenre()
|
|
{
|
|
return genre;
|
|
}
|
|
|
|
public void setGenre(String genre)
|
|
{
|
|
this.genre = genre;
|
|
}
|
|
|
|
public String getContentType()
|
|
{
|
|
return contentType;
|
|
}
|
|
|
|
public void setContentType(String contentType)
|
|
{
|
|
this.contentType = contentType;
|
|
}
|
|
|
|
public String getSuffix()
|
|
{
|
|
return suffix;
|
|
}
|
|
|
|
public void setSuffix(String suffix)
|
|
{
|
|
this.suffix = suffix;
|
|
}
|
|
|
|
public String getTranscodedContentType()
|
|
{
|
|
return transcodedContentType;
|
|
}
|
|
|
|
public void setTranscodedContentType(String transcodedContentType)
|
|
{
|
|
this.transcodedContentType = transcodedContentType;
|
|
}
|
|
|
|
public String getTranscodedSuffix()
|
|
{
|
|
return transcodedSuffix;
|
|
}
|
|
|
|
public void setTranscodedSuffix(String transcodedSuffix)
|
|
{
|
|
this.transcodedSuffix = transcodedSuffix;
|
|
}
|
|
|
|
public Long getSize()
|
|
{
|
|
return size;
|
|
}
|
|
|
|
public void setSize(Long size)
|
|
{
|
|
this.size = size;
|
|
}
|
|
|
|
public Integer getDuration()
|
|
{
|
|
return duration;
|
|
}
|
|
|
|
public void setDuration(Integer duration)
|
|
{
|
|
this.duration = duration;
|
|
}
|
|
|
|
public void setDuration(long duration)
|
|
{
|
|
this.duration = (int) duration;
|
|
}
|
|
|
|
public Integer getBitRate()
|
|
{
|
|
return bitRate;
|
|
}
|
|
|
|
public void setBitRate(Integer bitRate)
|
|
{
|
|
this.bitRate = bitRate;
|
|
}
|
|
|
|
public String getCoverArt()
|
|
{
|
|
return coverArt;
|
|
}
|
|
|
|
public void setCoverArt(String coverArt)
|
|
{
|
|
this.coverArt = coverArt;
|
|
}
|
|
|
|
public String getPath()
|
|
{
|
|
return path;
|
|
}
|
|
|
|
public void setPath(String path)
|
|
{
|
|
this.path = path;
|
|
}
|
|
|
|
public boolean isVideo()
|
|
{
|
|
return isVideo;
|
|
}
|
|
|
|
public void setIsVideo(boolean video)
|
|
{
|
|
this.isVideo = video;
|
|
}
|
|
|
|
public String getType()
|
|
{
|
|
return type;
|
|
}
|
|
|
|
public void setType(String type)
|
|
{
|
|
this.type = type;
|
|
}
|
|
|
|
public Date getCreated()
|
|
{
|
|
return created;
|
|
}
|
|
|
|
public void setCreated(String created)
|
|
{
|
|
if (created != null)
|
|
{
|
|
try
|
|
{
|
|
this.created = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.ENGLISH).parse(created);
|
|
}
|
|
catch (ParseException e)
|
|
{
|
|
this.created = null;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.created = null;
|
|
}
|
|
}
|
|
|
|
public int getCloseness()
|
|
{
|
|
return closeness;
|
|
}
|
|
|
|
public void setCloseness(int closeness)
|
|
{
|
|
this.closeness = closeness;
|
|
}
|
|
|
|
public int getBookmarkPosition()
|
|
{
|
|
return bookmarkPosition;
|
|
}
|
|
|
|
public void setBookmarkPosition(int bookmarkPosition)
|
|
{
|
|
this.bookmarkPosition = bookmarkPosition;
|
|
}
|
|
|
|
@Override
|
|
public boolean equals(Object o)
|
|
{
|
|
if (this == o)
|
|
{
|
|
return true;
|
|
}
|
|
if (o == null || getClass() != o.getClass())
|
|
{
|
|
return false;
|
|
}
|
|
|
|
Entry entry = (Entry) o;
|
|
return id.equals(entry.id);
|
|
}
|
|
|
|
@Override
|
|
public int hashCode()
|
|
{
|
|
return id.hashCode();
|
|
}
|
|
|
|
@Override
|
|
public String toString()
|
|
{
|
|
return title;
|
|
}
|
|
}
|
|
} |