⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 didlcontent.java

📁 android_UPNP_DLNA_控制点
💻 JAVA
字号:
/* * Copyright (C) 2010 Teleal GmbH, Switzerland * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation, either version 3 of * the License, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program.  If not, see <http://www.gnu.org/licenses/>. */package org.teleal.cling.support.model;import org.teleal.cling.support.model.container.Album;import org.teleal.cling.support.model.container.Container;import org.teleal.cling.support.model.container.GenreContainer;import org.teleal.cling.support.model.container.MovieGenre;import org.teleal.cling.support.model.container.MusicAlbum;import org.teleal.cling.support.model.container.MusicArtist;import org.teleal.cling.support.model.container.MusicGenre;import org.teleal.cling.support.model.container.PersonContainer;import org.teleal.cling.support.model.container.PhotoAlbum;import org.teleal.cling.support.model.container.PlaylistContainer;import org.teleal.cling.support.model.container.StorageFolder;import org.teleal.cling.support.model.container.StorageSystem;import org.teleal.cling.support.model.container.StorageVolume;import org.teleal.cling.support.model.item.AudioBook;import org.teleal.cling.support.model.item.AudioBroadcast;import org.teleal.cling.support.model.item.AudioItem;import org.teleal.cling.support.model.item.ImageItem;import org.teleal.cling.support.model.item.Item;import org.teleal.cling.support.model.item.Movie;import org.teleal.cling.support.model.item.MusicTrack;import org.teleal.cling.support.model.item.MusicVideoClip;import org.teleal.cling.support.model.item.Photo;import org.teleal.cling.support.model.item.PlaylistItem;import org.teleal.cling.support.model.item.TextItem;import org.teleal.cling.support.model.item.VideoBroadcast;import org.teleal.cling.support.model.item.VideoItem;import java.util.ArrayList;import java.util.List;/** * @author Christian Bauer */public class DIDLContent {    public static final String NAMESPACE_URI = "urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/";    public static final String DESC_WRAPPER_NAMESPACE_URI = "urn:teleal-org:cling:support:content-directory-desc-1-0";    protected List<Container> containers = new ArrayList();    protected List<Item> items = new ArrayList();    protected List<DescMeta> descMetadata = new ArrayList();    public Container getFirstContainer() {        return getContainers().get(0);    }    public DIDLContent addContainer(Container container) {        getContainers().add(container);        return this;    }    public List<Container> getContainers() {        return containers;    }    public void setContainers(List<Container> containers) {        this.containers = containers;    }    public DIDLContent addItem(Item item) {        getItems().add(item);        return this;    }    public List<Item> getItems() {        return items;    }    public void setItems(List<Item> items) {        this.items = items;    }    public DIDLContent addDescMetadata(DescMeta descMetadata) {        getDescMetadata().add(descMetadata);        return this;    }    public List<DescMeta> getDescMetadata() {        return descMetadata;    }    public void setDescMetadata(List<DescMeta> descMetadata) {        this.descMetadata = descMetadata;    }    public void replaceGenericContainerAndItems() {        setItems(replaceGenericItems(getItems()));        setContainers(replaceGenericContainers(getContainers()));    }    protected List<Item> replaceGenericItems(List<Item> genericItems) {        List<Item> specificItems = new ArrayList();        for (Item genericItem : genericItems) {            String genericType = genericItem.getClazz().getValue();            if (AudioItem.CLASS.getValue().equals(genericType)) {                specificItems.add(new AudioItem(genericItem));            } else if (MusicTrack.CLASS.getValue().equals(genericType)) {                specificItems.add(new MusicTrack(genericItem));            } else if (AudioBook.CLASS.getValue().equals(genericType)) {                specificItems.add(new AudioBook(genericItem));            } else if (AudioBroadcast.CLASS.getValue().equals(genericType)) {                specificItems.add(new AudioBroadcast(genericItem));            } else if (VideoItem.CLASS.getValue().equals(genericType)) {                specificItems.add(new VideoItem(genericItem));            } else if (Movie.CLASS.getValue().equals(genericType)) {                specificItems.add(new Movie(genericItem));            } else if (VideoBroadcast.CLASS.getValue().equals(genericType)) {                specificItems.add(new VideoBroadcast(genericItem));            } else if (MusicVideoClip.CLASS.getValue().equals(genericType)) {                specificItems.add(new MusicVideoClip(genericItem));            } else if (ImageItem.CLASS.getValue().equals(genericType)) {                specificItems.add(new ImageItem(genericItem));            } else if (Photo.CLASS.getValue().equals(genericType)) {                specificItems.add(new Photo(genericItem));            } else if (PlaylistItem.CLASS.getValue().equals(genericType)) {                specificItems.add(new PlaylistItem(genericItem));            } else if (TextItem.CLASS.getValue().equals(genericType)) {                specificItems.add(new TextItem(genericItem));            } else {                specificItems.add(genericItem);            }        }        return specificItems;    }    protected List<Container> replaceGenericContainers(List<Container> genericContainers) {        List<Container> specificContainers = new ArrayList();        for (Container genericContainer : genericContainers) {            String genericType = genericContainer.getClazz().getValue();            Container specific;            if (Album.CLASS.getValue().equals(genericType)) {                specific = new Album(genericContainer);            } else if (MusicAlbum.CLASS.getValue().equals(genericType)) {                specific = new MusicAlbum(genericContainer);            } else if (PhotoAlbum.CLASS.getValue().equals(genericType)) {                specific = new PhotoAlbum(genericContainer);            } else if (GenreContainer.CLASS.getValue().equals(genericType)) {                specific = new GenreContainer(genericContainer);            } else if (MusicGenre.CLASS.getValue().equals(genericType)) {                specific = new MusicGenre(genericContainer);            } else if (MovieGenre.CLASS.getValue().equals(genericType)) {                specific = new MovieGenre(genericContainer);            } else if (PlaylistContainer.CLASS.getValue().equals(genericType)) {                specific = new PlaylistContainer(genericContainer);            } else if (PersonContainer.CLASS.getValue().equals(genericType)) {                specific = new PersonContainer(genericContainer);            } else if (MusicArtist.CLASS.getValue().equals(genericType)) {                specific = new MusicArtist(genericContainer);            } else if (StorageSystem.CLASS.getValue().equals(genericType)) {                specific = new StorageSystem(genericContainer);            } else if (StorageVolume.CLASS.getValue().equals(genericType)) {                specific = new StorageVolume(genericContainer);            } else if (StorageFolder.CLASS.getValue().equals(genericType)) {                specific = new StorageFolder(genericContainer);            } else {                specific = genericContainer;            }            specific.setItems(replaceGenericItems(genericContainer.getItems()));            specificContainers.add(specific);        }        return specificContainers;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -