Changeset 189
- Timestamp:
- 12/26/07 22:00:29 (1 year ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
lex/trunk/src/com/qwirx/lex/hebrew/HebrewEnglishDatabase.java
r188 r189 3 3 import java.io.IOException; 4 4 import java.io.InputStream; 5 import java.util.ArrayList; 5 6 import java.util.HashMap; 7 import java.util.List; 6 8 import java.util.Map; 7 9 … … 53 55 public String getFullMeaning() { return m_FullMeaning; } 54 56 public String getTranslationInAV() { return m_TranslationInAV; } 57 public String getAmsterdamString() 58 { 59 String in = m_CALUnpointedAscii; 60 StringBuffer out = new StringBuffer(); 61 for (int i = 0; i < in.length(); i++) 62 { 63 char c = in.charAt(i); 64 switch (c) 65 { 66 case ')': out.append('>'); break; 67 case 'b': out.append('B'); break; 68 case 'g': out.append('G'); break; 69 case 'd': out.append('D'); break; 70 case 'h': out.append('H'); break; 71 case 'w': out.append('W'); break; 72 case 'v': out.append('W'); break; // bug in data? 73 case 'z': out.append('Z'); break; 74 case 'x': out.append('X'); break; 75 case 'T': out.append('V'); break; 76 case 'f': out.append('V'); break; // bug in data? 77 case 'y': out.append('J'); break; 78 case 'k': out.append('K'); break; 79 case 'l': out.append('L'); break; 80 case 'm': out.append('M'); break; 81 case 'M': out.append('M'); break; // bug in data? 82 case 'n': out.append('N'); break; 83 case 's': out.append('S'); break; 84 case '(': out.append('<'); break; 85 case 'p': out.append('P'); break; 86 case 'c': out.append('Y'); break; 87 case 'q': out.append('Q'); break; 88 case 'r': out.append('R'); break; 89 case '&': out.append('F'); break; 90 case '$': out.append('C'); break; 91 case 't': out.append('T'); break; 92 case '@': out.append(' '); break; 93 case ' ': out.append(' '); break; 94 default: 95 throw new IllegalArgumentException("No translation for " + 96 c + " to Amsterdam"); 97 } 98 } 99 return out.toString(); 100 } 101 public String toString() 102 { 103 return "<@" + m_StrongsNum + ">"; 104 } 55 105 } 56 106 57 107 private Map<Integer, Entry> m_StrongsNumToEntryMap = 58 108 new HashMap<Integer, Entry>(); 109 private Map<String, List<Entry>> m_AmsterdamToEntryMap = 110 new HashMap<String, List<Entry>>(); 59 111 60 112 private HebrewEnglishDatabase() throws IOException … … 73 125 Entry entry = new Entry(parse[i]); 74 126 m_StrongsNumToEntryMap.put(entry.getStrongsNum(), entry); 127 128 String amsterdam = entry.getAmsterdamString(); 129 List<Entry> matches = m_AmsterdamToEntryMap.get(amsterdam); 130 if (matches == null) 131 { 132 matches = new ArrayList<Entry>(); 133 m_AmsterdamToEntryMap.put(amsterdam, matches); 134 } 135 matches.add(entry); 75 136 } 76 137 } … … 79 140 { 80 141 return m_StrongsNumToEntryMap.get(strongsNum); 142 } 143 144 public List<Entry> getMatches(String amsterdam) 145 { 146 return m_AmsterdamToEntryMap.get(amsterdam); 81 147 } 82 148 lex/trunk/test/com/qwirx/lex/HebrewEnglishDatabaseTest.java
r188 r189 1 1 package com.qwirx.lex; 2 2 3 import java. io.InputStream;3 import java.util.List; 4 4 5 5 import junit.framework.TestCase; 6 6 7 import com.qwirx.csv.CommaSeparatedValueParser;8 7 import com.qwirx.lex.hebrew.HebrewEnglishDatabase; 9 8 … … 131 130 assertEquals("{<b>a green plant</b> }", entry.getFullMeaning()); 132 131 assertEquals("fruit.", entry.getTranslationInAV()); 132 133 List<HebrewEnglishDatabase.Entry> matches = dict.getMatches(">B"); 134 assertEquals(4, matches.size()); 135 assertEquals(matches.toString(), 1, matches.get(0).getStrongsNum()); 136 assertEquals(matches.toString(), 2, matches.get(1).getStrongsNum()); 137 assertEquals(matches.toString(), 3, matches.get(2).getStrongsNum()); 138 assertEquals(matches.toString(), 4, matches.get(3).getStrongsNum()); 133 139 134 140 for (int i = 1; i < 8675; i++)
