📄 container.java
字号:
package no.auc.one.portableplayer.lms;
import java.io.*;
import java.util.Enumeration;
import java.util.Vector;
public class Container extends DidlObject {
private Vector content;
// Optional
private boolean searchable = false;
private String createClass = DidlObject.SERIALIZED_NULL_STRING_PROPERTY;
private String searchClass = DidlObject.SERIALIZED_NULL_STRING_PROPERTY;
private final static String CLASSTYPE = "object.container";
public String classType() {
return CLASSTYPE;
}
public Container(
int id,
int parentId,
String title,
boolean restricted)
{
super(id, parentId, title, restricted);
content = new Vector(3, 3);
}
public Container(DataInput di) throws IOException {
super(di);
content = new Vector(di.readInt());
for (int i = 0; i < content.capacity(); i++) {
content.addElement(new Integer(di.readInt()));
}
createClass = di.readUTF();
searchClass = di.readUTF();
searchable = di.readBoolean();
}
public void serialize(DataOutput dout) throws IOException {
super.serialize(dout);
dout.writeInt(childCount());
for (Enumeration e = content.elements(); e.hasMoreElements(); ) {
int i = ((Integer)e.nextElement()).intValue();
dout.writeInt(i);
}
dout.writeUTF(createClass);
dout.writeUTF(searchClass);
dout.writeBoolean(searchable);
}
public void serializeXml(PrintStream ps) {
System.out.println("SerializeXml for " + this);
ps.print("<container id=\"");
ps.print(id);
ps.print("\" parentID=\"");
ps.print(parentId);
ps.print("\" childCount=\"");
ps.print(content.size());
ps.print("\" restricted=\"");
ps.print(restricted);
ps.print("\" searchable=\"");
ps.print(searchable);
ps.print("\">");
ps.print("<dc:title>");
ps.print(title);
ps.print("</dc:title>");
if (!creator.equals(DidlObject.SERIALIZED_NULL_STRING_PROPERTY)) {
ps.print("<dc:creator>");
ps.print(creator);
ps.print("</dc:creator>\r\n");
}
ps.print("<upnp:class>");
ps.print(classType());
ps.print("</upnp:class>\r\n");
if (!res.equals(DidlObject.SERIALIZED_NULL_STRING_PROPERTY)) {
// XXX Must fix protocolInfo!
ps.print("<res protocolInfo=\"http-get:*:audio/mpeg:*\">");
ps.print(res);
ps.print("</res>\r\n");
}
if (!writeStatus.equals(DidlObject.SERIALIZED_NULL_STRING_PROPERTY)) {
ps.print("<upnp:writeStatus>");
ps.print(writeStatus);
ps.print("</upnp:writeStatus>\r\n");
}
if (!createClass.equals(DidlObject.SERIALIZED_NULL_STRING_PROPERTY)) {
ps.print("<upnp:createClass>");
ps.print(createClass);
ps.print("</upnp:createClass\r\n");
}
if (!searchClass.equals(DidlObject.SERIALIZED_NULL_STRING_PROPERTY)) {
ps.print("<upnp:searchClass>");
ps.print(searchClass);
ps.print("</upnp:searchClass>\r\n");
}
}
public final void serializeXmlEndMarker(PrintStream ps) {
ps.print("</container>");
}
public int childCount(){
return content.size();
}
public boolean isSearchable(){
return searchable;
}
public Enumeration content(){
return content.elements();
}
public void addContent(int[] children) {
content.ensureCapacity(content.size() + children.length);
for (int i = 0; i < children.length; i++) {
addContent(new Integer(children[i]));
}
}
public void addContent(Integer id) {
content.addElement(id);
}
public void setCreateClass(String createClass) {
this.createClass = createClass;
}
public String getCreateClass() {
return createClass;
}
public void setSearchClass(String searchClass) {
this.searchClass = searchClass;
}
public String getSearchClass() {
return searchClass;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -