package edu.harvard.wcfia.yoshikoder.reporting; import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.logging.Logger; import edu.harvard.wcfia.yoshikoder.document.DocumentListImpl; import edu.harvard.wcfia.yoshikoder.document.YKDocument; import edu.harvard.wcfia.yoshikoder.util.Messages; public class DocumentFrequencyReport extends AbstractReport implements YKReport{ private static Logger log = Logger.getLogger("edu.harvard.wcfia.yoshikoder.reporting.DocumentFrequencyReport"); protected WordFrequencyMap map; public DocumentFrequencyReport(String reportTitle, String desc, String dictName, YKDocument doc, WordFrequencyMap wfmap) { super(reportTitle, desc, dictName, new DocumentListImpl(doc)); map = wfmap; data = initData(); } protected Object[][] initData(){ List vocabulary = map.getSortedVocabularyList(); Collections.sort(vocabulary); Object[][] report = new Object[vocabulary.size()][3]; int ii = 0; for (Iterator iter = vocabulary.iterator(); iter.hasNext();) { String word = (String) iter.next(); report[ii][0] = word; report[ii][1] = map.getWordCount(word); report[ii][2] = map.getWordProportion(word); ii++; } return report; } public Class getColumnClass(int columnIndex) { switch (columnIndex){ case 0: return String.class; case 1: return Integer.class; case 2: return Double.class; default: return Object.class; } } public String getColumnName(int columnIndex) { switch (columnIndex){ case 0: return Messages.getString("word"); case 1: return Messages.getString("count"); case 2: return Messages.getString("proportion"); default: return null; } } }