Mercurial Hosting > luan
annotate src/goodjava/lucene/logging/LogInputStream.java @ 1956:19de10be4c37
swing and rpc
| author | Franklin Schmidt <fschmidt@gmail.com> |
|---|---|
| date | Wed, 28 May 2025 15:58:56 -0600 |
| parents | 117ce8645b7f |
| children |
| rev | line source |
|---|---|
| 1476 | 1 package goodjava.lucene.logging; |
| 2 | |
| 3 import java.io.InputStream; | |
|
1557
117ce8645b7f
lucene logging - add long string
Franklin Schmidt <fschmidt@gmail.com>
parents:
1476
diff
changeset
|
4 import goodjava.io.DataInputStream; |
| 1476 | 5 import java.io.IOException; |
| 6 import java.util.List; | |
| 7 import java.util.ArrayList; | |
| 8 import java.util.Map; | |
| 9 import java.util.LinkedHashMap; | |
| 10 import org.apache.lucene.index.Term; | |
| 11 import org.apache.lucene.search.Query; | |
| 12 import org.apache.lucene.search.MatchAllDocsQuery; | |
| 13 import org.apache.lucene.search.TermQuery; | |
| 14 import org.apache.lucene.search.PrefixQuery; | |
| 15 import org.apache.lucene.search.WildcardQuery; | |
| 16 import org.apache.lucene.search.TermRangeQuery; | |
| 17 import org.apache.lucene.search.PhraseQuery; | |
| 18 import org.apache.lucene.search.NumericRangeQuery; | |
| 19 import org.apache.lucene.search.BooleanQuery; | |
| 20 import org.apache.lucene.search.BooleanClause; | |
| 21 import org.apache.lucene.util.BytesRef; | |
| 22 import goodjava.logging.Logger; | |
| 23 import goodjava.logging.LoggerFactory; | |
| 24 | |
| 25 | |
| 26 public class LogInputStream extends DataInputStream { | |
| 27 private static final Logger logger = LoggerFactory.getLogger(LogInputStream.class); | |
| 28 | |
| 29 public LogInputStream(InputStream in) { | |
| 30 super(in); | |
| 31 } | |
| 32 | |
| 33 public Object readObject() throws IOException { | |
| 34 int type = readByte(); | |
| 35 return readObject(type); | |
| 36 } | |
| 37 | |
| 38 protected Object readObject(int type) throws IOException { | |
| 39 switch(type) { | |
| 40 case LogFile.TYPE_NULL: | |
| 41 return null; | |
| 42 case LogFile.TYPE_STRING: | |
| 43 return readUTF(); | |
|
1557
117ce8645b7f
lucene logging - add long string
Franklin Schmidt <fschmidt@gmail.com>
parents:
1476
diff
changeset
|
44 case LogFile.TYPE_LONG_STRING: |
|
117ce8645b7f
lucene logging - add long string
Franklin Schmidt <fschmidt@gmail.com>
parents:
1476
diff
changeset
|
45 return readString(); |
| 1476 | 46 case LogFile.TYPE_INT: |
| 47 return readInt(); | |
| 48 case LogFile.TYPE_LONG: | |
| 49 return readLong(); | |
| 50 case LogFile.TYPE_FLOAT: | |
| 51 return readFloat(); | |
| 52 case LogFile.TYPE_DOUBLE: | |
| 53 return readDouble(); | |
| 54 case LogFile.TYPE_BYTES: | |
| 55 return readByteArray(); | |
| 56 case LogFile.TYPE_LIST: | |
| 57 return readList(); | |
| 58 case LogFile.TYPE_QUERY_MATCH_ALL_DOCS: | |
| 59 return new MatchAllDocsQuery(); | |
| 60 case LogFile.TYPE_QUERY_TERM: | |
| 61 return new TermQuery( readTerm() ); | |
| 62 case LogFile.TYPE_QUERY_PREFIX: | |
| 63 return new PrefixQuery( readTerm() ); | |
| 64 case LogFile.TYPE_QUERY_WILDCARD: | |
| 65 return new WildcardQuery( readTerm() ); | |
| 66 case LogFile.TYPE_QUERY_TERM_RANGE: | |
| 67 { | |
| 68 String field = readUTF(); | |
| 69 BytesRef lowerTerm = readBytesRef(); | |
| 70 BytesRef upperTerm = readBytesRef(); | |
| 71 boolean includeLower = readBoolean(); | |
| 72 boolean includeUpper = readBoolean(); | |
| 73 return new TermRangeQuery(field,lowerTerm,upperTerm,includeLower,includeUpper); | |
| 74 } | |
| 75 case LogFile.TYPE_QUERY_PHRASE: | |
| 76 { | |
| 77 PhraseQuery query = new PhraseQuery(); | |
| 78 int n = readInt(); | |
| 79 for( int i=0; i<n; i++ ) { | |
| 80 Term term = readTerm(); | |
| 81 int position = readInt(); | |
| 82 query.add(term,position); | |
| 83 } | |
| 84 return query; | |
| 85 } | |
| 86 case LogFile.TYPE_QUERY_NUMERIC_RANGE: | |
| 87 { | |
| 88 String field = readUTF(); | |
| 89 Number min = (Number)readObject(); | |
| 90 Number max = (Number)readObject(); | |
| 91 boolean minInclusive = readBoolean(); | |
| 92 boolean maxInclusive = readBoolean(); | |
| 93 Number n = min!=null ? min : max; | |
| 94 if( n instanceof Integer ) | |
| 95 return NumericRangeQuery.newIntRange(field,(Integer)min,(Integer)max,minInclusive,maxInclusive); | |
| 96 if( n instanceof Long ) | |
| 97 return NumericRangeQuery.newLongRange(field,(Long)min,(Long)max,minInclusive,maxInclusive); | |
| 98 if( n instanceof Float ) | |
| 99 return NumericRangeQuery.newFloatRange(field,(Float)min,(Float)max,minInclusive,maxInclusive); | |
| 100 if( n instanceof Double ) | |
| 101 return NumericRangeQuery.newDoubleRange(field,(Double)min,(Double)max,minInclusive,maxInclusive); | |
| 102 throw new RuntimeException("bad numeric type for "+n); | |
| 103 } | |
| 104 case LogFile.TYPE_QUERY_BOOLEAN: | |
| 105 { | |
| 106 BooleanQuery query = new BooleanQuery(); | |
| 107 int n = readInt(); | |
| 108 for( int i=0; i<n; i++ ) { | |
| 109 Query subquery = readQuery(); | |
| 110 BooleanClause.Occur occur = BooleanClause.Occur.valueOf( readUTF() ); | |
| 111 query.add(subquery,occur); | |
| 112 } | |
| 113 return query; | |
| 114 } | |
| 115 default: | |
| 116 throw new RuntimeException("invalid type "+type); | |
| 117 } | |
| 118 } | |
| 119 | |
| 120 public byte[] readByteArray() throws IOException { | |
| 121 int len = readInt(); | |
| 122 byte[] bytes = new byte[len]; | |
| 123 readFully(bytes); | |
| 124 return bytes; | |
| 125 } | |
| 126 | |
| 127 public List readList() throws IOException { | |
| 128 final int size = readInt(); | |
| 129 List list = new ArrayList(size); | |
| 130 for( int i=0; i<size; i++ ) { | |
| 131 list.add( readObject() ); | |
| 132 } | |
| 133 return list; | |
| 134 } | |
| 135 | |
| 136 public Map readMap() throws IOException { | |
| 137 final int size = readInt(); | |
| 138 Map map = new LinkedHashMap(); | |
| 139 for( int i=0; i<size; i++ ) { | |
| 140 Object key = readObject(); | |
| 141 Object value = readObject(); | |
| 142 map.put(key,value); | |
| 143 } | |
| 144 return map; | |
| 145 } | |
| 146 | |
| 147 public Query readQuery() throws IOException { | |
| 148 return (Query)readObject(); | |
| 149 } | |
| 150 | |
| 151 public BytesRef readBytesRef() throws IOException { | |
| 152 return new BytesRef( readByteArray() ); | |
| 153 } | |
| 154 | |
| 155 public Term readTerm() throws IOException { | |
| 156 String key = readUTF(); | |
| 157 BytesRef value = readBytesRef(); | |
| 158 return new Term(key,value); | |
| 159 } | |
| 160 | |
| 161 } |
