1 // $Id: TagAnalysisExample.java,v 1.1 2006/09/23 11:09:33 bpeters Exp $
\r
2 package org.marc4j.samples;
\r
4 import java.io.InputStream;
\r
5 import java.util.ArrayList;
\r
6 import java.util.Collections;
\r
7 import java.util.Hashtable;
\r
8 import java.util.Iterator;
\r
9 import java.util.List;
\r
11 import org.marc4j.MarcReader;
\r
12 import org.marc4j.MarcStreamReader;
\r
13 import org.marc4j.marc.Record;
\r
14 import org.marc4j.marc.VariableField;
\r
17 * Outputs list of used tags.
\r
19 * @author Bas Peters
\r
20 * @version $Revision: 1.1 $
\r
22 public class TagAnalysisExample {
\r
24 public static void main(String args[]) throws Exception {
\r
26 InputStream input = AddLocationExample.class
\r
27 .getResourceAsStream("resources/chabon.mrc");
\r
29 Hashtable<String, Integer> table = new Hashtable<String, Integer>();
\r
33 MarcReader reader = new MarcStreamReader(input);
\r
34 while (reader.hasNext()) {
\r
37 Record record = reader.next();
\r
39 List<VariableField> fields = record.getVariableFields();
\r
40 Iterator<VariableField> i = fields.iterator();
\r
41 while (i.hasNext()) {
\r
42 VariableField field = (VariableField) i.next();
\r
43 String tag = field.getTag();
\r
44 if (table.containsKey(tag)) {
\r
45 Integer counts = (Integer) table.get(tag);
\r
46 table.put(tag, new Integer(counts.intValue() + 1));
\r
48 table.put(tag, new Integer(1));
\r
54 System.out.println("Analyzed " + counter + " records");
\r
55 System.out.println("Tag\tCount");
\r
57 List<String> list = new ArrayList<String>(table.keySet());
\r
58 Collections.sort(list);
\r
59 Iterator<String> i = list.iterator();
\r
60 while (i.hasNext()) {
\r
61 String tag = (String) i.next();
\r
62 Integer value = (Integer) table.get(tag);
\r
63 System.out.println(tag + "\t" + value);
\r