Original 2.4
[marc4j.git] / src / org / marc4j / samples / TagAnalysisExample.java
1 // $Id: TagAnalysisExample.java,v 1.1 2006/09/23 11:09:33 bpeters Exp $\r
2 package org.marc4j.samples;\r
3 \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
10 \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
15 \r
16 /**\r
17  * Outputs list of used tags.\r
18  * \r
19  * @author Bas Peters\r
20  * @version $Revision: 1.1 $\r
21  */\r
22 public class TagAnalysisExample {\r
23 \r
24     public static void main(String args[]) throws Exception {\r
25 \r
26         InputStream input = AddLocationExample.class\r
27                 .getResourceAsStream("resources/chabon.mrc");\r
28 \r
29         Hashtable table = new Hashtable();\r
30 \r
31         int counter = 0;\r
32 \r
33         MarcReader reader = new MarcStreamReader(input);\r
34         while (reader.hasNext()) {\r
35             counter++;\r
36 \r
37             Record record = reader.next();\r
38 \r
39             List fields = record.getVariableFields();\r
40             Iterator 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
47                 } else {\r
48                     table.put(tag, new Integer(1));\r
49                 }\r
50             }\r
51 \r
52         }\r
53 \r
54         System.out.println("Analyzed " + counter + " records");\r
55         System.out.println("Tag\tCount");\r
56 \r
57         List list = new ArrayList(table.keySet());\r
58         Collections.sort(list);\r
59         Iterator 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
64         }\r
65 \r
66     }\r
67 }\r