/* You may freely copy, distribute, modify and use this class as long as the original author attribution remains intact. See message below. Copyright (C) 2003 Christian Pesch. All Rights Reserved. */ package slash.metamusic.freedb; import slash.metamusic.discid.DiscId; import java.io.IOException; import java.util.HashSet; import java.util.Set; /** * FreeDBBatch batches queries to FreeDB which had * been registered with FreeDBRegister. * * @author Christian Pesch * @version $Id: FreeDBBatch.java 914 2006-12-26 20:44:49Z cpesch $ */ public class FreeDBBatch extends RegisterBase { public void batch() throws IOException { Set discIds = readDiscIds(); if (discIds == null) { log.fine("No disc ids found"); return; } log.fine("Batching queries for disc ids: " + discIds); FreeDBClient client = new FreeDBClient(); Set<DiscId> failed = new HashSet<DiscId>(1); for (Object discId1 : discIds) { DiscId discId = (DiscId) discId1; log.info("Querying disc id: " + discId.getEncodedDiscId()); CDDBRecord[] records = client.queryDiscId(discId); if (records.length == 0) failed.add(discId); for (CDDBRecord record : records) { client.readCDInfo(record); } } log.fine("Clearing registered disc ids"); writeDiscIds(failed); } public static void main(String[] args) throws Exception { FreeDBBatch batch = new FreeDBBatch(); batch.batch(); System.exit(0); } }