/******************************************************************************
 * MediaContainer.java - Primary domain object from plex
 * $Id: Directory.java,v 1.4 2014/10/20 01:13:13 dick Exp $
 * 
 * BuckoVidLib - The BuckoSoft Video Library
 * Copyright(c) 2014 - Dick Balaska
 * 
 * $Log: Directory.java,v $
 * Revision 1.4  2014/10/20 01:13:13  dick
 * addedAt and updatedAt are ints (maybe should be longs).
 *
 * Revision 1.3  2014/10/17 08:36:44  dick
 * Add missing parent attributes (from /recentlyAdded).
 *
 * Revision 1.2  2014/10/12 07:20:57  dick
 * Fill out the Directory attributes to handle a TV Show.
 *
 * Revision 1.1  2014/10/04 16:17:53  dick
 * plex domain objects.
 *
 */
package tv.plex.domain;

import java.util.ArrayList;
import java.util.Collection;

import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class Directory {
	private	int		addedAt;
	private	String	agent;
	private	int		allowSync;
	private	String	art;
	private	String	banner;
	private	int		childCount;
	private	String	composite;
	private	String	contentRating;
	private	String	count;
	private	String	createdAt;
	private	int		duration;
	private	String	filters;
	private	int		index;
	private	String	key;
	private	String	language;
	private	int		lastViewedAt;
	private	int		leafCount;
	private	int		librarySectionID;
	private	String	librarySectionTitle;
	private	String	librarySectionUUID;
	private	String	originallyAvailableAt;
	private	int		parentIndex;
	private	String	parentKey;
	private	int		parentRatingKey;
	private	String	parentThumb;
	private	String	parentTitle;
	private	double	rating;
	private	int		ratingKey;
	private	String	refreshing;
	private	String	scanner;
	private	int		size;
	private	String	studio;
	private	String	summary;
	private	String	theme;
	private	String	thumb;
	private	String	title;
	private	String	titleSort;
	private	String	type;
	private	int		updatedAt;
	private	String	uuid;
	private	int		viewedLeafCount;
	private	int		year;
	private	Location	location;

	Collection<Genre> 		genres = new ArrayList<Genre>();
	Collection<Role>		roles = new ArrayList<Role>();
	
	/**
	 * @return the count
	 */
	@XmlAttribute
	public String getCount() {
		return count;
	}
	/**
	 * @param count the count to set
	 */
	public void setCount(String count) {
		this.count = count;
	}
	/**
	 * @return the key
	 */
	@XmlAttribute
	public String getKey() {
		return key;
	}
	/**
	 * @param key the key to set
	 */
	public void setKey(String key) {
		this.key = key;
	}
	/**
	 * @return the title
	 */
	@XmlAttribute
	public String getTitle() {
		return title;
	}
	/**
	 * @param title the title to set
	 */
	public void setTitle(String title) {
		this.title = title;
	}
	/**
	 * @return the allowSync
	 */
	@XmlAttribute
	public int getAllowSync() {
		return allowSync;
	}
	/**
	 * @param allowSync the allowSync to set
	 */
	public void setAllowSync(int allowSync) {
		this.allowSync = allowSync;
	}
	/**
	 * @return the art
	 */
	@XmlAttribute
	public String getArt() {
		return art;
	}
	/**
	 * @param art the art to set
	 */
	public void setArt(String art) {
		this.art = art;
	}
	/**
	 * @return the filters
	 */
	@XmlAttribute
	public String getFilters() {
		return filters;
	}
	/**
	 * @param filters the filters to set
	 */
	public void setFilters(String filters) {
		this.filters = filters;
	}
	/**
	 * @return the refreshing
	 */
	@XmlAttribute
	public String getRefreshing() {
		return refreshing;
	}
	/**
	 * @param refreshing the refreshing to set
	 */
	public void setRefreshing(String refreshing) {
		this.refreshing = refreshing;
	}
	/**
	 * @return the thumb
	 */
	@XmlAttribute
	public String getThumb() {
		return thumb;
	}
	/**
	 * @param thumb the thumb to set
	 */
	public void setThumb(String thumb) {
		this.thumb = thumb;
	}
	/**
	 * @return the composite
	 */
	@XmlAttribute
	public String getComposite() {
		return composite;
	}
	/**
	 * @param composite the composite to set
	 */
	public void setComposite(String composite) {
		this.composite = composite;
	}
	/**
	 * @return the agent
	 */
	@XmlAttribute
	public String getAgent() {
		return agent;
	}
	/**
	 * @param agent the agent to set
	 */
	public void setAgent(String agent) {
		this.agent = agent;
	}
	/**
	 * @return the scanner
	 */
	@XmlAttribute
	public String getScanner() {
		return scanner;
	}
	/**
	 * @param scanner the scanner to set
	 */
	public void setScanner(String scanner) {
		this.scanner = scanner;
	}
	/**
	 * @return the size
	 */
	@XmlAttribute
	public int getSize() {
		return size;
	}
	/**
	 * @param size the size to set
	 */
	public void setSize(int size) {
		this.size = size;
	}
	/**
	 * @return the language
	 */
	@XmlAttribute
	public String getLanguage() {
		return language;
	}
	/**
	 * @param language the language to set
	 */
	public void setLanguage(String language) {
		this.language = language;
	}
	/**
	 * @return the uuid
	 */
	@XmlAttribute
	public String getUuid() {
		return uuid;
	}
	/**
	 * @param uuid the uuid to set
	 */
	public void setUuid(String uuid) {
		this.uuid = uuid;
	}
	/**
	 * @return the updatedAt
	 */
	@XmlAttribute
	public int getUpdatedAt() {
		return updatedAt;
	}
	/**
	 * @param updatedAt the updatedAt to set
	 */
	public void setUpdatedAt(int updatedAt) {
		this.updatedAt = updatedAt;
	}
	/**
	 * @return the createdAt
	 */
	@XmlAttribute
	public String getCreatedAt() {
		return createdAt;
	}
	/**
	 * @param createdAt the createdAt to set
	 */
	public void setCreatedAt(String createdAt) {
		this.createdAt = createdAt;
	}
	/**
	 * @return the location
	 */
	@XmlElement
	public Location getLocation() {
		return location;
	}
	/**
	 * @param location the location to set
	 */
	public void setLocation(Location location) {
		this.location = location;
	}

	/**
	 * @return the addedAt
	 */
	@XmlAttribute
	public int getAddedAt() {
		return addedAt;
	}
	/**
	 * @param addedAt the addedAt to set
	 */
	public void setAddedAt(int addedAt) {
		this.addedAt = addedAt;
	}
	/**
	 * @return the banner
	 */
	@XmlAttribute
	public String getBanner() {
		return banner;
	}
	/**
	 * @param banner the banner to set
	 */
	public void setBanner(String banner) {
		this.banner = banner;
	}
	/**
	 * @return the childCount
	 */
	@XmlAttribute
	public int getChildCount() {
		return childCount;
	}
	/**
	 * @param childCount the childCount to set
	 */
	public void setChildCount(int childCount) {
		this.childCount = childCount;
	}
	/**
	 * @return the contentRating
	 */
	@XmlAttribute
	public String getContentRating() {
		return contentRating;
	}
	/**
	 * @param contentRating the contentRating to set
	 */
	public void setContentRating(String contentRating) {
		this.contentRating = contentRating;
	}
	/**
	 * @return the duration
	 */
	@XmlAttribute
	public int getDuration() {
		return duration;
	}
	/**
	 * @param duration the duration to set
	 */
	public void setDuration(int duration) {
		this.duration = duration;
	}
	/**
	 * @return the index
	 */
	@XmlAttribute
	public int getIndex() {
		return index;
	}
	/**
	 * @param index the index to set
	 */
	public void setIndex(int index) {
		this.index = index;
	}
	/**
	 * @return the lastViewedAt
	 */
	@XmlAttribute
	public int getLastViewedAt() {
		return lastViewedAt;
	}
	/**
	 * @param lastViewedAt the lastViewedAt to set
	 */
	public void setLastViewedAt(int lastViewedAt) {
		this.lastViewedAt = lastViewedAt;
	}
	/**
	 * @return the leafCount
	 */
	@XmlAttribute
	public int getLeafCount() {
		return leafCount;
	}
	/**
	 * @param leafCount the leafCount to set
	 */
	public void setLeafCount(int leafCount) {
		this.leafCount = leafCount;
	}
	/**
	 * @return the originallyAvailableAt
	 */
	@XmlAttribute
	public String getOriginallyAvailableAt() {
		return originallyAvailableAt;
	}
	/**
	 * @param originallyAvailableAt the originallyAvailableAt to set
	 */
	public void setOriginallyAvailableAt(String originallyAvailableAt) {
		this.originallyAvailableAt = originallyAvailableAt;
	}
	/**
	 * @return the rating
	 */
	@XmlAttribute
	public double getRating() {
		return rating;
	}
	/**
	 * @param rating the rating to set
	 */
	public void setRating(double rating) {
		this.rating = rating;
	}
	/**
	 * @return the ratingKey
	 */
	@XmlAttribute
	public int getRatingKey() {
		return ratingKey;
	}
	/**
	 * @param ratingKey the ratingKey to set
	 */
	public void setRatingKey(int ratingKey) {
		this.ratingKey = ratingKey;
	}
	/**
	 * @return the studio
	 */
	@XmlAttribute
	public String getStudio() {
		return studio;
	}
	/**
	 * @param studio the studio to set
	 */
	public void setStudio(String studio) {
		this.studio = studio;
	}
	/**
	 * @return the summary
	 */
	@XmlAttribute
	public String getSummary() {
		return summary;
	}
	/**
	 * @param summary the summary to set
	 */
	public void setSummary(String summary) {
		this.summary = summary;
	}
	/**
	 * @return the theme
	 */
	@XmlAttribute
	public String getTheme() {
		return theme;
	}
	/**
	 * @param theme the theme to set
	 */
	public void setTheme(String theme) {
		this.theme = theme;
	}
	/**
	 * @return the titleSort
	 */
	@XmlAttribute
	public String getTitleSort() {
		return titleSort;
	}
	/**
	 * @param titleSort the titleSort to set
	 */
	public void setTitleSort(String titleSort) {
		this.titleSort = titleSort;
	}
	/**
	 * @return the type
	 */
	@XmlAttribute
	public String getType() {
		return type;
	}
	/**
	 * @param type the type to set
	 */
	public void setType(String type) {
		this.type = type;
	}
	/**
	 * @return the viewedLeafCount
	 */
	@XmlAttribute
	public int getViewedLeafCount() {
		return viewedLeafCount;
	}
	/**
	 * @param viewedLeafCount the viewedLeafCount to set
	 */
	public void setViewedLeafCount(int viewedLeafCount) {
		this.viewedLeafCount = viewedLeafCount;
	}
	/**
	 * @return the year
	 */
	@XmlAttribute
	public int getYear() {
		return year;
	}
	/**
	 * @param year the year to set
	 */
	public void setYear(int year) {
		this.year = year;
	}
	/**
	 * @return the genres
	 */
	public Collection<Genre> getGenres() {
		return genres;
	}
	/**
	 * @param genres the genres to set
	 */
	@XmlElement(name = "Genre")
	public void setGenres(Collection<Genre> genres) {
		this.genres = genres;
	}
	/**
	 * @return the roles
	 */
	public Collection<Role> getRoles() {
		return roles;
	}
	/**
	 * @param roles the roles to set
	 */
	@XmlElement(name = "Role")
	public void setRoles(Collection<Role> roles) {
		this.roles = roles;
	}
	/**
	 * @return the librarySectionID
	 */
	@XmlAttribute
	public int getLibrarySectionID() {
		return librarySectionID;
	}
	/**
	 * @param librarySectionID the librarySectionID to set
	 */
	public void setLibrarySectionID(int librarySectionID) {
		this.librarySectionID = librarySectionID;
	}
	/**
	 * @return the librarySectionTitle
	 */
	@XmlAttribute
	public String getLibrarySectionTitle() {
		return librarySectionTitle;
	}
	/**
	 * @param librarySectionTitle the librarySectionTitle to set
	 */
	public void setLibrarySectionTitle(String librarySectionTitle) {
		this.librarySectionTitle = librarySectionTitle;
	}
	/**
	 * @return the librarySectionUUID
	 */
	@XmlAttribute
	public String getLibrarySectionUUID() {
		return librarySectionUUID;
	}
	/**
	 * @param librarySectionUUID the librarySectionUUID to set
	 */
	public void setLibrarySectionUUID(String librarySectionUUID) {
		this.librarySectionUUID = librarySectionUUID;
	}
	/**
	 * @return the parentIndex
	 */
	@XmlAttribute
	public int getParentIndex() {
		return parentIndex;
	}
	/**
	 * @param parentIndex the parentIndex to set
	 */
	public void setParentIndex(int parentIndex) {
		this.parentIndex = parentIndex;
	}
	/**
	 * @return the parentKey
	 */
	@XmlAttribute
	public String getParentKey() {
		return parentKey;
	}
	/**
	 * @param parentKey the parentKey to set
	 */
	public void setParentKey(String parentKey) {
		this.parentKey = parentKey;
	}
	/**
	 * @return the parentRatingKey
	 */
	@XmlAttribute
	public int getParentRatingKey() {
		return parentRatingKey;
	}
	/**
	 * @param parentRatingKey the parentRatingKey to set
	 */
	public void setParentRatingKey(int parentRatingKey) {
		this.parentRatingKey = parentRatingKey;
	}
	/**
	 * @return the parentThumb
	 */
	@XmlAttribute
	public String getParentThumb() {
		return parentThumb;
	}
	/**
	 * @param parentThumb the parentThumb to set
	 */
	public void setParentThumb(String parentThumb) {
		this.parentThumb = parentThumb;
	}
	/**
	 * @return the parentTitle
	 */
	@XmlAttribute
	public String getParentTitle() {
		return parentTitle;
	}
	/**
	 * @param parentTitle the parentTitle to set
	 */
	public void setParentTitle(String parentTitle) {
		this.parentTitle = parentTitle;
	}


}
