package net.pms.dlna;
import net.pms.dlna.virtual.*;
public class Search extends VirtualFolder {
private SearchObj sobj;
private StringBuilder sb;
private boolean searched;
public Search(SearchObj obj) {
this(obj, "");
}
public Search(SearchObj obj, String str) {
super(str, null);
this.sobj = obj;
this.sb = new StringBuilder(str);
searched = false;
}
public SearchObj getSearchObj() {
return sobj;
}
@Override
public String getName() {
return sb.toString();
}
@Override
public String getSystemName() {
return getName();
}
@Override
public synchronized void resolve() {
setDiscovered(false);
}
public synchronized void append(char ch) {
if (ch == '\0') {
sb = new StringBuilder();
} else if (ch == '\b') {
if (sb.length() != 0) {
sb.deleteCharAt(sb.length() - 1);
}
} else {
sb.append(ch);
}
}
@Override
public synchronized void discoverChildren() {
if (searched) {
getChildren().clear();
}
sobj.search(sb.toString(), this);
searched = true;
}
}