All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.tinymediamanager.jsonrpc.api.model.AudioModel Maven / Gradle / Ivy

Go to download

This library is the result of freezy's Kodi JSON introspection, merged with dereulenspiegel's adoption without android, and patched to Kodi 16 Jarvis.

The newest version!
/*
 *      Copyright (C) 2005-2013 Team XBMC
 *      http://xbmc.org
 *
 *  This Program 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 2, or (at your option)
 *  any later version.
 *
 *  This Program 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 XBMC Remote; see the file license.  If not, write to
 *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
 *  http://www.gnu.org/copyleft/gpl.html
 *
 */
package org.tinymediamanager.jsonrpc.api.model;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import org.codehaus.jackson.JsonNode;
import org.codehaus.jackson.node.ArrayNode;
import org.codehaus.jackson.node.ObjectNode;

public final class AudioModel {

  /**
   * API Name: Audio.Details.Album
   * 

* Note: This class is used as result only.
* This class was generated automatically from XBMC's JSON-RPC introspect. */ public static class AlbumDetail extends MediaDetail { public final static String API_TYPE = "Audio.Details.Album"; // field names public static final String ALBUMID = "albumid"; public static final String ALBUMLABEL = "albumlabel"; public static final String COMPILATION = "compilation"; public static final String DESCRIPTION = "description"; public static final String MOOD = "mood"; public static final String PLAYCOUNT = "playcount"; public static final String RELEASETYPE = "releasetype"; public static final String STYLE = "style"; public static final String THEME = "theme"; public static final String TYPE = "type"; // class members public final Integer albumid; public final String albumlabel; public final Boolean compilation; public final String description; public final List mood; public final Integer playcount; public final String releasetype; public final List style; public final List theme; public final String type; /** * Construct from JSON object. * * @param node * JSON object representing a AlbumDetail object */ public AlbumDetail(JsonNode node) { super(node); albumid = parseInt(node, ALBUMID); albumlabel = parseString(node, ALBUMLABEL); compilation = parseBoolean(node, COMPILATION); description = parseString(node, DESCRIPTION); mood = getStringArray(node, MOOD); playcount = parseInt(node, PLAYCOUNT); releasetype = parseString(node, RELEASETYPE); style = getStringArray(node, STYLE); theme = getStringArray(node, THEME); type = parseString(node, TYPE); } @Override public JsonNode toJsonNode() { final ObjectNode node = (ObjectNode) super.toJsonNode(); node.put(ALBUMID, albumid); node.put(ALBUMLABEL, albumlabel); node.put(COMPILATION, compilation); node.put(DESCRIPTION, description); final ArrayNode moodArray = OM.createArrayNode(); for (String item : mood) { moodArray.add(item); } node.put(MOOD, moodArray); node.put(PLAYCOUNT, playcount); node.put(RELEASETYPE, releasetype); // enum final ArrayNode styleArray = OM.createArrayNode(); for (String item : style) { styleArray.add(item); } node.put(STYLE, styleArray); final ArrayNode themeArray = OM.createArrayNode(); for (String item : theme) { themeArray.add(item); } node.put(THEME, themeArray); node.put(TYPE, type); return node; } /** * Extracts a list of {@link AlbumDetail} objects from a JSON array. * * @param node * ObjectNode containing the list of objects. * @param key * Key pointing to the node where the list is stored. */ static List getAudioModelAlbumDetailList(JsonNode node, String key) { if (node.has(key)) { final ArrayNode a = (ArrayNode) node.get(key); final List l = new ArrayList(a.size()); for (int i = 0; i < a.size(); i++) { l.add(new AlbumDetail((JsonNode) a.get(i))); } return l; } return new ArrayList(0); } } /** * API Name: Audio.Details.Artist *

* Note: This class is used as result only.
* This class was generated automatically from XBMC's JSON-RPC introspect. */ public static class ArtistDetail extends BaseDetail { public final static String API_TYPE = "Audio.Details.Artist"; // field names public static final String ARTIST = "artist"; public static final String ARTISTID = "artistid"; public static final String BORN = "born"; public static final String COMPILATIONARTIST = "compilationartist"; public static final String DESCRIPTION = "description"; public static final String DIED = "died"; public static final String DISBANDED = "disbanded"; public static final String FORMED = "formed"; public static final String INSTRUMENT = "instrument"; public static final String MOOD = "mood"; public static final String MUSICBRAINZARTISTID = "musicbrainzartistid"; public static final String STYLE = "style"; public static final String YEARSACTIVE = "yearsactive"; // class members public final String artist; public final Integer artistid; public final String born; public final Boolean compilationartist; public final String description; public final String died; public final String disbanded; public final String formed; public final List instrument; public final List mood; public final String musicbrainzartistid; public final List style; public final List yearsactive; /** * Construct from JSON object. * * @param node * JSON object representing a ArtistDetail object */ public ArtistDetail(JsonNode node) { super(node); artist = node.get(ARTIST).getTextValue(); // required value artistid = parseInt(node, ARTISTID); born = parseString(node, BORN); compilationartist = parseBoolean(node, COMPILATIONARTIST); description = parseString(node, DESCRIPTION); died = parseString(node, DIED); disbanded = parseString(node, DISBANDED); formed = parseString(node, FORMED); instrument = getStringArray(node, INSTRUMENT); mood = getStringArray(node, MOOD); musicbrainzartistid = parseString(node, MUSICBRAINZARTISTID); style = getStringArray(node, STYLE); yearsactive = getStringArray(node, YEARSACTIVE); } @Override public JsonNode toJsonNode() { final ObjectNode node = (ObjectNode) super.toJsonNode(); node.put(ARTIST, artist); node.put(ARTISTID, artistid); node.put(BORN, born); node.put(COMPILATIONARTIST, compilationartist); node.put(DESCRIPTION, description); node.put(DIED, died); node.put(DISBANDED, disbanded); node.put(FORMED, formed); final ArrayNode instrumentArray = OM.createArrayNode(); for (String item : instrument) { instrumentArray.add(item); } node.put(INSTRUMENT, instrumentArray); final ArrayNode moodArray = OM.createArrayNode(); for (String item : mood) { moodArray.add(item); } node.put(MOOD, moodArray); node.put(MUSICBRAINZARTISTID, musicbrainzartistid); final ArrayNode styleArray = OM.createArrayNode(); for (String item : style) { styleArray.add(item); } node.put(STYLE, styleArray); final ArrayNode yearsactiveArray = OM.createArrayNode(); for (String item : yearsactive) { yearsactiveArray.add(item); } node.put(YEARSACTIVE, yearsactiveArray); return node; } /** * Extracts a list of {@link ArtistDetail} objects from a JSON array. * * @param node * ObjectNode containing the list of objects. * @param key * Key pointing to the node where the list is stored. */ static List getAudioModelArtistDetailList(JsonNode node, String key) { if (node.has(key)) { final ArrayNode a = (ArrayNode) node.get(key); final List l = new ArrayList(a.size()); for (int i = 0; i < a.size(); i++) { l.add(new ArtistDetail((JsonNode) a.get(i))); } return l; } return new ArrayList(0); } } /** * API Name: Audio.Details.Base *

* Note: This class is used as result only.
* This class was generated automatically from XBMC's JSON-RPC introspect. */ public static class BaseDetail extends MediaModel.BaseDetail { public final static String API_TYPE = "Audio.Details.Base"; // field names public static final String DATEADDED = "dateadded"; public static final String GENRE = "genre"; // class members public final String dateadded; public final List genre; /** * Construct from JSON object. * * @param node * JSON object representing a BaseDetail object */ public BaseDetail(JsonNode node) { super(node); dateadded = parseString(node, DATEADDED); genre = getStringArray(node, GENRE); } @Override public JsonNode toJsonNode() { final ObjectNode node = (ObjectNode) super.toJsonNode(); node.put(DATEADDED, dateadded); final ArrayNode genreArray = OM.createArrayNode(); for (String item : genre) { genreArray.add(item); } node.put(GENRE, genreArray); return node; } /** * Extracts a list of {@link BaseDetail} objects from a JSON array. * * @param node * ObjectNode containing the list of objects. * @param key * Key pointing to the node where the list is stored. */ static List getAudioModelBaseDetailList(JsonNode node, String key) { if (node.has(key)) { final ArrayNode a = (ArrayNode) node.get(key); final List l = new ArrayList(a.size()); for (int i = 0; i < a.size(); i++) { l.add(new BaseDetail((JsonNode) a.get(i))); } return l; } return new ArrayList(0); } } /** * API Name: Audio.Details.Media *

* Note: This class is used as result only.
* This class was generated automatically from XBMC's JSON-RPC introspect. */ public static class MediaDetail extends BaseDetail { public final static String API_TYPE = "Audio.Details.Media"; // field names public static final String ARTIST = "artist"; public static final String ARTISTID = "artistid"; public static final String DISPLAYARTIST = "displayartist"; public static final String GENREID = "genreid"; public static final String MUSICBRAINZALBUMARTISTID = "musicbrainzalbumartistid"; public static final String MUSICBRAINZALBUMID = "musicbrainzalbumid"; public static final String RATING = "rating"; public static final String TITLE = "title"; public static final String YEAR = "year"; // class members public final List artist; public final List artistid; public final String displayartist; public final List genreid; public final String musicbrainzalbumartistid; public final String musicbrainzalbumid; public final Integer rating; public final String title; public final Integer year; /** * Construct from JSON object. * * @param node * JSON object representing a MediaDetail object */ public MediaDetail(JsonNode node) { super(node); artist = getStringArray(node, ARTIST); artistid = getIntegerArray(node, ARTISTID); displayartist = parseString(node, DISPLAYARTIST); genreid = getIntegerArray(node, GENREID); musicbrainzalbumartistid = parseString(node, MUSICBRAINZALBUMARTISTID); musicbrainzalbumid = parseString(node, MUSICBRAINZALBUMID); rating = parseInt(node, RATING); title = parseString(node, TITLE); year = parseInt(node, YEAR); } @Override public JsonNode toJsonNode() { final ObjectNode node = (ObjectNode) super.toJsonNode(); final ArrayNode artistArray = OM.createArrayNode(); for (String item : artist) { artistArray.add(item); } node.put(ARTIST, artistArray); final ArrayNode artistidArray = OM.createArrayNode(); for (Integer item : artistid) { artistidArray.add(item); } node.put(ARTISTID, artistidArray); node.put(DISPLAYARTIST, displayartist); final ArrayNode genreidArray = OM.createArrayNode(); for (Integer item : genreid) { genreidArray.add(item); } node.put(GENREID, genreidArray); node.put(MUSICBRAINZALBUMARTISTID, musicbrainzalbumartistid); node.put(MUSICBRAINZALBUMID, musicbrainzalbumid); node.put(RATING, rating); node.put(TITLE, title); node.put(YEAR, year); return node; } /** * Extracts a list of {@link MediaDetail} objects from a JSON array. * * @param node * ObjectNode containing the list of objects. * @param key * Key pointing to the node where the list is stored. */ static List getAudioModelMediaDetailList(JsonNode node, String key) { if (node.has(key)) { final ArrayNode a = (ArrayNode) node.get(key); final List l = new ArrayList(a.size()); for (int i = 0; i < a.size(); i++) { l.add(new MediaDetail((JsonNode) a.get(i))); } return l; } return new ArrayList(0); } } /** * API Name: Audio.Details.Song *

* Note: This class is used as result only.
* This class was generated automatically from XBMC's JSON-RPC introspect. */ public static class SongDetail extends MediaDetail { public final static String API_TYPE = "Audio.Details.Song"; // field names public static final String ALBUM = "album"; public static final String ALBUMARTIST = "albumartist"; public static final String ALBUMARTISTID = "albumartistid"; public static final String ALBUMID = "albumid"; public static final String ALBUMRELEASETYPE = "albumreleasetype"; public static final String COMMENT = "comment"; public static final String DISC = "disc"; public static final String DURATION = "duration"; public static final String FILE = "file"; public static final String LASTPLAYED = "lastplayed"; public static final String LYRICS = "lyrics"; public static final String MUSICBRAINZARTISTID = "musicbrainzartistid"; public static final String MUSICBRAINZTRACKID = "musicbrainztrackid"; public static final String PLAYCOUNT = "playcount"; public static final String SONGID = "songid"; public static final String TRACK = "track"; // class members public final String album; public final List albumartist; public final List albumartistid; public final Integer albumid; public final String albumreleasetype; public final String comment; public final Integer disc; public final Integer duration; public final String file; public final String lastplayed; public final String lyrics; public final String musicbrainzartistid; public final String musicbrainztrackid; public final Integer playcount; public final Integer songid; public final Integer track; /** * Construct from JSON object. * * @param node * JSON object representing a SongDetail object */ public SongDetail(JsonNode node) { super(node); album = parseString(node, ALBUM); albumartist = getStringArray(node, ALBUMARTIST); albumartistid = getIntegerArray(node, ALBUMARTISTID); albumid = parseInt(node, ALBUMID); albumreleasetype = parseString(node, ALBUMRELEASETYPE); comment = parseString(node, COMMENT); disc = parseInt(node, DISC); duration = parseInt(node, DURATION); file = parseString(node, FILE); lastplayed = parseString(node, LASTPLAYED); lyrics = parseString(node, LYRICS); musicbrainzartistid = parseString(node, MUSICBRAINZARTISTID); musicbrainztrackid = parseString(node, MUSICBRAINZTRACKID); playcount = parseInt(node, PLAYCOUNT); songid = parseInt(node, SONGID); track = parseInt(node, TRACK); } @Override public JsonNode toJsonNode() { final ObjectNode node = (ObjectNode) super.toJsonNode(); node.put(ALBUM, album); final ArrayNode albumartistArray = OM.createArrayNode(); for (String item : albumartist) { albumartistArray.add(item); } node.put(ALBUMARTIST, albumartistArray); final ArrayNode albumartistidArray = OM.createArrayNode(); for (Integer item : albumartistid) { albumartistidArray.add(item); } node.put(ALBUMARTISTID, albumartistidArray); node.put(ALBUMID, albumid); node.put(ALBUMRELEASETYPE, albumreleasetype); // enum node.put(COMMENT, comment); node.put(DISC, disc); node.put(DURATION, duration); node.put(FILE, file); node.put(LASTPLAYED, lastplayed); node.put(LYRICS, lyrics); node.put(MUSICBRAINZARTISTID, musicbrainzartistid); node.put(MUSICBRAINZTRACKID, musicbrainztrackid); node.put(PLAYCOUNT, playcount); node.put(SONGID, songid); node.put(TRACK, track); return node; } /** * Extracts a list of {@link SongDetail} objects from a JSON array. * * @param node * ObjectNode containing the list of objects. * @param key * Key pointing to the node where the list is stored. */ static List getAudioModelSongDetailList(JsonNode node, String key) { if (node.has(key)) { final ArrayNode a = (ArrayNode) node.get(key); final List l = new ArrayList(a.size()); for (int i = 0; i < a.size(); i++) { l.add(new SongDetail((JsonNode) a.get(i))); } return l; } return new ArrayList(0); } } /** * API Name: Audio.Fields.Album */ public interface AlbumFields { public final String TITLE = "title"; public final String DESCRIPTION = "description"; public final String ARTIST = "artist"; public final String GENRE = "genre"; public final String THEME = "theme"; public final String MOOD = "mood"; public final String STYLE = "style"; public final String TYPE = "type"; public final String ALBUMLABEL = "albumlabel"; public final String RATING = "rating"; public final String YEAR = "year"; public final String MUSICBRAINZALBUMID = "musicbrainzalbumid"; public final String MUSICBRAINZALBUMARTISTID = "musicbrainzalbumartistid"; public final String FANART = "fanart"; public final String THUMBNAIL = "thumbnail"; public final String PLAYCOUNT = "playcount"; public final String GENREID = "genreid"; public final String ARTISTID = "artistid"; public final String DISPLAYARTIST = "displayartist"; public final String COMPILATION = "compilation"; public final String RELEASETYPE = "releasetype"; public final String DATEADDED = "dateadded"; public final static Set values = new HashSet( Arrays.asList(TITLE, DESCRIPTION, ARTIST, GENRE, THEME, MOOD, STYLE, TYPE, ALBUMLABEL, RATING, YEAR, MUSICBRAINZALBUMID, MUSICBRAINZALBUMARTISTID, FANART, THUMBNAIL, PLAYCOUNT, GENREID, ARTISTID, DISPLAYARTIST, COMPILATION, RELEASETYPE, DATEADDED)); } /** * API Name: Audio.Fields.Artist */ public interface ArtistFields { public final String INSTRUMENT = "instrument"; public final String STYLE = "style"; public final String MOOD = "mood"; public final String BORN = "born"; public final String FORMED = "formed"; public final String DESCRIPTION = "description"; public final String GENRE = "genre"; public final String DIED = "died"; public final String DISBANDED = "disbanded"; public final String YEARSACTIVE = "yearsactive"; public final String MUSICBRAINZARTISTID = "musicbrainzartistid"; public final String FANART = "fanart"; public final String THUMBNAIL = "thumbnail"; public final String COMPILATIONARTIST = "compilationartist"; public final String DATEADDED = "dateadded"; public final static Set values = new HashSet(Arrays.asList(INSTRUMENT, STYLE, MOOD, BORN, FORMED, DESCRIPTION, GENRE, DIED, DISBANDED, YEARSACTIVE, MUSICBRAINZARTISTID, FANART, THUMBNAIL, COMPILATIONARTIST, DATEADDED)); } /** * API Name: Audio.Fields.Song */ public interface SongFields { public final String TITLE = "title"; public final String ARTIST = "artist"; public final String ALBUMARTIST = "albumartist"; public final String GENRE = "genre"; public final String YEAR = "year"; public final String RATING = "rating"; public final String ALBUM = "album"; public final String TRACK = "track"; public final String DURATION = "duration"; public final String COMMENT = "comment"; public final String LYRICS = "lyrics"; public final String MUSICBRAINZTRACKID = "musicbrainztrackid"; public final String MUSICBRAINZARTISTID = "musicbrainzartistid"; public final String MUSICBRAINZALBUMID = "musicbrainzalbumid"; public final String MUSICBRAINZALBUMARTISTID = "musicbrainzalbumartistid"; public final String PLAYCOUNT = "playcount"; public final String FANART = "fanart"; public final String THUMBNAIL = "thumbnail"; public final String FILE = "file"; public final String ALBUMID = "albumid"; public final String LASTPLAYED = "lastplayed"; public final String DISC = "disc"; public final String GENREID = "genreid"; public final String ARTISTID = "artistid"; public final String DISPLAYARTIST = "displayartist"; public final String ALBUMARTISTID = "albumartistid"; public final String ALBUMRELEASETYPE = "albumreleasetype"; public final String DATEADDED = "dateadded"; public final static Set values = new HashSet(Arrays.asList(TITLE, ARTIST, ALBUMARTIST, GENRE, YEAR, RATING, ALBUM, TRACK, DURATION, COMMENT, LYRICS, MUSICBRAINZTRACKID, MUSICBRAINZARTISTID, MUSICBRAINZALBUMID, MUSICBRAINZALBUMARTISTID, PLAYCOUNT, FANART, THUMBNAIL, FILE, ALBUMID, LASTPLAYED, DISC, GENREID, ARTISTID, DISPLAYARTIST, ALBUMARTISTID, ALBUMRELEASETYPE, DATEADDED)); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy