예제 #1
0
 public void remove(Track track) {
   synchronized (this) {
     docElt.removeChild(track.getElement());
     tracks.remove(track);
     hash.remove(track.getKey());
   }
 }
예제 #2
0
 public Track add(Track track) {
   synchronized (this) {
     Track copy;
     if ((copy = getTrack(track)) == null) {
       copy = new Track((Element) doc.importNode(track.getElement(), false));
       docElt.appendChild(copy.getElement());
       tracks.add(copy);
       hash.put(copy.getKey(), copy);
     }
     return copy;
   }
 }
예제 #3
0
 public void load(InputStream is) throws IOException, ParserConfigurationException, SAXException {
   doc = db.parse(is);
   docElt = doc.getDocumentElement();
   if (docElt.getTagName().equals(docElementName)) {
     NodeList nl = docElt.getElementsByTagName(trackElementName);
     for (int i = 0; i < nl.getLength(); i++) {
       Element elt = (Element) nl.item(i);
       Track track = new Track(elt);
       tracks.add(track);
       hash.put(track.getKey(), track);
     }
   }
 }
예제 #4
0
 public void purge() {
   for (int i = tracks.size() - 1; i >= 0; i--) {
     Track track = (Track) tracks.elementAt(i);
     if (track.isHidden()) tracks.remove(i);
   }
 }
예제 #5
0
 private int compare(Track track0, Track track1) {
   return track0.getName().compareTo(track1.getName());
 }
예제 #6
0
 public float getProbability(Track track) {
   if (track.getFile() == null) return 0;
   return track.getProbability();
 }
예제 #7
0
 public Track getTrack(Track track) {
   return getTrack(track.getKey());
 }