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

org.tinymediamanager.jsonrpc.api.model.AddonModel 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.BooleanNode;
import org.codehaus.jackson.node.ObjectNode;
import org.codehaus.jackson.node.TextNode;
import org.tinymediamanager.jsonrpc.api.AbstractModel;

public final class AddonModel {

  /**
   * API Name: Addon.Details
   * 

* Note: This class is used as result only.
* This class was generated automatically from XBMC's JSON-RPC introspect. */ public static class Detail extends ItemModel.BaseDetail { public final static String API_TYPE = "Addon.Details"; // field names public static final String ADDONID = "addonid"; public static final String AUTHOR = "author"; public static final String BROKEN = "broken"; public static final String DEPENDENCIES = "dependencies"; public static final String DESCRIPTION = "description"; public static final String DISCLAIMER = "disclaimer"; public static final String ENABLED = "enabled"; public static final String EXTRAINFO = "extrainfo"; public static final String FANART = "fanart"; public static final String NAME = "name"; public static final String PATH = "path"; public static final String RATING = "rating"; public static final String SUMMARY = "summary"; public static final String THUMBNAIL = "thumbnail"; public static final String TYPE = "type"; public static final String VERSION = "version"; // class members public final String addonid; public final String author; public final Broken broken; public final List dependencies; public final String description; public final String disclaimer; public final Boolean enabled; public final List extrainfo; public final String fanart; public final String name; public final String path; public final Integer rating; public final String summary; public final String thumbnail; public final String type; public final String version; /** * Construct from JSON object. * * @param node * JSON object representing a Detail object */ public Detail(JsonNode node) { super(node); addonid = node.get(ADDONID).getTextValue(); // required value author = parseString(node, AUTHOR); broken = node.has(BROKEN) ? new Broken(node.get(BROKEN)) : null; dependencies = Dependency.getAddonModelDependencyList(node, DEPENDENCIES); description = parseString(node, DESCRIPTION); disclaimer = parseString(node, DISCLAIMER); enabled = parseBoolean(node, ENABLED); extrainfo = Extrainfo.getAddonModelExtrainfoList(node, EXTRAINFO); fanart = parseString(node, FANART); name = parseString(node, NAME); path = parseString(node, PATH); rating = parseInt(node, RATING); summary = parseString(node, SUMMARY); thumbnail = parseString(node, THUMBNAIL); type = parseString(node, TYPE); version = parseString(node, VERSION); } @Override public JsonNode toJsonNode() { final ObjectNode node = (ObjectNode) super.toJsonNode(); node.put(ADDONID, addonid); node.put(AUTHOR, author); node.put(BROKEN, broken == null ? null : broken.toJsonNode()); final ArrayNode dependenciesArray = OM.createArrayNode(); for (Dependency item : dependencies) { dependenciesArray.add(item.toJsonNode()); } node.put(DEPENDENCIES, dependenciesArray); node.put(DESCRIPTION, description); node.put(DISCLAIMER, disclaimer); node.put(ENABLED, enabled); final ArrayNode extrainfoArray = OM.createArrayNode(); for (Extrainfo item : extrainfo) { extrainfoArray.add(item.toJsonNode()); } node.put(EXTRAINFO, extrainfoArray); node.put(FANART, fanart); node.put(NAME, name); node.put(PATH, path); node.put(RATING, rating); node.put(SUMMARY, summary); node.put(THUMBNAIL, thumbnail); node.put(TYPE, type); // enum node.put(VERSION, version); return node; } /** * Extracts a list of {@link Detail} 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 getAddonModelDetailList(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 Detail((JsonNode) a.get(i))); } return l; } return new ArrayList(0); } /** * Note: This class is used as result only.
* This class was generated automatically from XBMC's JSON-RPC introspect. */ public static class Broken extends AbstractModel { // class members public final Boolean booleanArg; public final String stringArg; /** * @param booleanArg */ public Broken(Boolean booleanArg) { this.booleanArg = booleanArg; this.stringArg = null; } /** * @param stringArg */ public Broken(String stringArg) { this.stringArg = stringArg; this.booleanArg = null; } /** * Construct from JSON object. * * @param node * JSON object representing a Broken object */ public Broken(JsonNode node) { if (node.isBoolean()) { booleanArg = node.getBooleanValue(); stringArg = null; } else if (node.isTextual()) { stringArg = node.getTextValue(); booleanArg = null; } else { throw new RuntimeException("Weird type for \"broken\", I'm confused!"); } } @Override public JsonNode toJsonNode() { if (booleanArg != null) { return booleanArg ? BooleanNode.TRUE : BooleanNode.FALSE; } if (stringArg != null) { return new TextNode(stringArg); } return null; // this is completely excluded. theoretically. } /** * Extracts a list of {@link Broken} 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 getAddonModelBrokenList(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 Broken((JsonNode) a.get(i))); } return l; } return new ArrayList(0); } } /** * Note: This class is used as result only.
* This class was generated automatically from XBMC's JSON-RPC introspect. */ public static class Dependency extends AbstractModel { // field names public static final String ADDONID = "addonid"; public static final String OPTIONAL = "optional"; public static final String VERSION = "version"; // class members public final String addonid; public final Boolean optional; public final String version; /** * @param addonid * @param optional * @param version */ public Dependency(String addonid, Boolean optional, String version) { this.addonid = addonid; this.optional = optional; this.version = version; } /** * Construct from JSON object. * * @param node * JSON object representing a Dependency object */ public Dependency(JsonNode node) { addonid = node.get(ADDONID).getTextValue(); // required value optional = node.get(OPTIONAL).getBooleanValue(); // required value version = node.get(VERSION).getTextValue(); // required value } @Override public JsonNode toJsonNode() { final ObjectNode node = OM.createObjectNode(); node.put(ADDONID, addonid); node.put(OPTIONAL, optional); node.put(VERSION, version); return node; } /** * Extracts a list of {@link Dependency} 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 getAddonModelDependencyList(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 Dependency((JsonNode) a.get(i))); } return l; } return new ArrayList(0); } } /** * Note: This class is used as result only.
* This class was generated automatically from XBMC's JSON-RPC introspect. */ public static class Extrainfo extends AbstractModel { // field names public static final String KEY = "key"; public static final String VALUE = "value"; // class members public final String key; public final String value; /** * @param key * @param value */ public Extrainfo(String key, String value) { this.key = key; this.value = value; } /** * Construct from JSON object. * * @param node * JSON object representing a Extrainfo object */ public Extrainfo(JsonNode node) { key = node.get(KEY).getTextValue(); // required value value = node.get(VALUE).getTextValue(); // required value } @Override public JsonNode toJsonNode() { final ObjectNode node = OM.createObjectNode(); node.put(KEY, key); node.put(VALUE, value); return node; } /** * Extracts a list of {@link Extrainfo} 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 getAddonModelExtrainfoList(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 Extrainfo((JsonNode) a.get(i))); } return l; } return new ArrayList(0); } } /** * API Name: type */ public interface Type { public final String UNKNOWN = "unknown"; public final String XBMC_PLAYER_MUSICVIZ = "xbmc.player.musicviz"; public final String XBMC_GUI_SKIN = "xbmc.gui.skin"; public final String XBMC_PVRCLIENT = "xbmc.pvrclient"; public final String KODI_ADSP = "kodi.adsp"; public final String XBMC_PYTHON_SCRIPT = "xbmc.python.script"; public final String XBMC_PYTHON_WEATHER = "xbmc.python.weather"; public final String XBMC_SUBTITLE_MODULE = "xbmc.subtitle.module"; public final String XBMC_PYTHON_LYRICS = "xbmc.python.lyrics"; public final String XBMC_METADATA_SCRAPER_ALBUMS = "xbmc.metadata.scraper.albums"; public final String XBMC_METADATA_SCRAPER_ARTISTS = "xbmc.metadata.scraper.artists"; public final String XBMC_METADATA_SCRAPER_MOVIES = "xbmc.metadata.scraper.movies"; public final String XBMC_METADATA_SCRAPER_MUSICVIDEOS = "xbmc.metadata.scraper.musicvideos"; public final String XBMC_METADATA_SCRAPER_TVSHOWS = "xbmc.metadata.scraper.tvshows"; public final String XBMC_UI_SCREENSAVER = "xbmc.ui.screensaver"; public final String XBMC_PYTHON_PLUGINSOURCE = "xbmc.python.pluginsource"; public final String XBMC_ADDON_REPOSITORY = "xbmc.addon.repository"; public final String XBMC_WEBINTERFACE = "xbmc.webinterface"; public final String XBMC_SERVICE = "xbmc.service"; public final String XBMC_AUDIOENCODER = "xbmc.audioencoder"; public final String KODI_CONTEXT_ITEM = "kodi.context.item"; public final String KODI_AUDIODECODER = "kodi.audiodecoder"; public final String KODI_RESOURCE_IMAGES = "kodi.resource.images"; public final String KODI_RESOURCE_LANGUAGE = "kodi.resource.language"; public final String KODI_RESOURCE_UISOUNDS = "kodi.resource.uisounds"; public final String XBMC_ADDON_VIDEO = "xbmc.addon.video"; public final String XBMC_ADDON_AUDIO = "xbmc.addon.audio"; public final String XBMC_ADDON_IMAGE = "xbmc.addon.image"; public final String XBMC_ADDON_EXECUTABLE = "xbmc.addon.executable"; public final String VISUALIZATION_LIBRARY = "visualization-library"; public final String XBMC_METADATA_SCRAPER_LIBRARY = "xbmc.metadata.scraper.library"; public final String XBMC_PYTHON_LIBRARY = "xbmc.python.library"; public final String XBMC_PYTHON_MODULE = "xbmc.python.module"; public final static Set values = new HashSet( Arrays.asList(UNKNOWN, XBMC_PLAYER_MUSICVIZ, XBMC_GUI_SKIN, XBMC_PVRCLIENT, KODI_ADSP, XBMC_PYTHON_SCRIPT, XBMC_PYTHON_WEATHER, XBMC_SUBTITLE_MODULE, XBMC_PYTHON_LYRICS, XBMC_METADATA_SCRAPER_ALBUMS, XBMC_METADATA_SCRAPER_ARTISTS, XBMC_METADATA_SCRAPER_MOVIES, XBMC_METADATA_SCRAPER_MUSICVIDEOS, XBMC_METADATA_SCRAPER_TVSHOWS, XBMC_UI_SCREENSAVER, XBMC_PYTHON_PLUGINSOURCE, XBMC_ADDON_REPOSITORY, XBMC_WEBINTERFACE, XBMC_SERVICE, XBMC_AUDIOENCODER, KODI_CONTEXT_ITEM, KODI_AUDIODECODER, KODI_RESOURCE_IMAGES, KODI_RESOURCE_LANGUAGE, KODI_RESOURCE_UISOUNDS, XBMC_ADDON_VIDEO, XBMC_ADDON_AUDIO, XBMC_ADDON_IMAGE, XBMC_ADDON_EXECUTABLE, VISUALIZATION_LIBRARY, XBMC_METADATA_SCRAPER_LIBRARY, XBMC_PYTHON_LIBRARY, XBMC_PYTHON_MODULE)); } } /** * API Name: Addon.Content */ public interface Content { public final String UNKNOWN = "unknown"; public final String VIDEO = "video"; public final String AUDIO = "audio"; public final String IMAGE = "image"; public final String EXECUTABLE = "executable"; public final static Set values = new HashSet(Arrays.asList(UNKNOWN, VIDEO, AUDIO, IMAGE, EXECUTABLE)); } /** * API Name: Addon.Fields */ public interface Fields { public final String NAME = "name"; public final String VERSION = "version"; public final String SUMMARY = "summary"; public final String DESCRIPTION = "description"; public final String PATH = "path"; public final String AUTHOR = "author"; public final String THUMBNAIL = "thumbnail"; public final String DISCLAIMER = "disclaimer"; public final String FANART = "fanart"; public final String DEPENDENCIES = "dependencies"; public final String BROKEN = "broken"; public final String EXTRAINFO = "extrainfo"; public final String RATING = "rating"; public final String ENABLED = "enabled"; public final static Set values = new HashSet(Arrays.asList(NAME, VERSION, SUMMARY, DESCRIPTION, PATH, AUTHOR, THUMBNAIL, DISCLAIMER, FANART, DEPENDENCIES, BROKEN, EXTRAINFO, RATING, ENABLED)); } /** * API Name: Addon.Types */ public interface Types { public final String UNKNOWN = "unknown"; public final String XBMC_PLAYER_MUSICVIZ = "xbmc.player.musicviz"; public final String XBMC_GUI_SKIN = "xbmc.gui.skin"; public final String XBMC_PVRCLIENT = "xbmc.pvrclient"; public final String KODI_ADSP = "kodi.adsp"; public final String XBMC_PYTHON_SCRIPT = "xbmc.python.script"; public final String XBMC_PYTHON_WEATHER = "xbmc.python.weather"; public final String XBMC_SUBTITLE_MODULE = "xbmc.subtitle.module"; public final String XBMC_PYTHON_LYRICS = "xbmc.python.lyrics"; public final String XBMC_METADATA_SCRAPER_ALBUMS = "xbmc.metadata.scraper.albums"; public final String XBMC_METADATA_SCRAPER_ARTISTS = "xbmc.metadata.scraper.artists"; public final String XBMC_METADATA_SCRAPER_MOVIES = "xbmc.metadata.scraper.movies"; public final String XBMC_METADATA_SCRAPER_MUSICVIDEOS = "xbmc.metadata.scraper.musicvideos"; public final String XBMC_METADATA_SCRAPER_TVSHOWS = "xbmc.metadata.scraper.tvshows"; public final String XBMC_UI_SCREENSAVER = "xbmc.ui.screensaver"; public final String XBMC_PYTHON_PLUGINSOURCE = "xbmc.python.pluginsource"; public final String XBMC_ADDON_REPOSITORY = "xbmc.addon.repository"; public final String XBMC_WEBINTERFACE = "xbmc.webinterface"; public final String XBMC_SERVICE = "xbmc.service"; public final String XBMC_AUDIOENCODER = "xbmc.audioencoder"; public final String KODI_CONTEXT_ITEM = "kodi.context.item"; public final String KODI_AUDIODECODER = "kodi.audiodecoder"; public final String KODI_RESOURCE_IMAGES = "kodi.resource.images"; public final String KODI_RESOURCE_LANGUAGE = "kodi.resource.language"; public final String KODI_RESOURCE_UISOUNDS = "kodi.resource.uisounds"; public final String XBMC_ADDON_VIDEO = "xbmc.addon.video"; public final String XBMC_ADDON_AUDIO = "xbmc.addon.audio"; public final String XBMC_ADDON_IMAGE = "xbmc.addon.image"; public final String XBMC_ADDON_EXECUTABLE = "xbmc.addon.executable"; public final String VISUALIZATION_LIBRARY = "visualization-library"; public final String XBMC_METADATA_SCRAPER_LIBRARY = "xbmc.metadata.scraper.library"; public final String XBMC_PYTHON_LIBRARY = "xbmc.python.library"; public final String XBMC_PYTHON_MODULE = "xbmc.python.module"; public final static Set values = new HashSet( Arrays.asList(UNKNOWN, XBMC_PLAYER_MUSICVIZ, XBMC_GUI_SKIN, XBMC_PVRCLIENT, KODI_ADSP, XBMC_PYTHON_SCRIPT, XBMC_PYTHON_WEATHER, XBMC_SUBTITLE_MODULE, XBMC_PYTHON_LYRICS, XBMC_METADATA_SCRAPER_ALBUMS, XBMC_METADATA_SCRAPER_ARTISTS, XBMC_METADATA_SCRAPER_MOVIES, XBMC_METADATA_SCRAPER_MUSICVIDEOS, XBMC_METADATA_SCRAPER_TVSHOWS, XBMC_UI_SCREENSAVER, XBMC_PYTHON_PLUGINSOURCE, XBMC_ADDON_REPOSITORY, XBMC_WEBINTERFACE, XBMC_SERVICE, XBMC_AUDIOENCODER, KODI_CONTEXT_ITEM, KODI_AUDIODECODER, KODI_RESOURCE_IMAGES, KODI_RESOURCE_LANGUAGE, KODI_RESOURCE_UISOUNDS, XBMC_ADDON_VIDEO, XBMC_ADDON_AUDIO, XBMC_ADDON_IMAGE, XBMC_ADDON_EXECUTABLE, VISUALIZATION_LIBRARY, XBMC_METADATA_SCRAPER_LIBRARY, XBMC_PYTHON_LIBRARY, XBMC_PYTHON_MODULE)); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy