luke で lucene 3.x で compress でstoreしたデータをみるパッチ

lucene 3.x(3.0.2だったり3.1devだったり) でCompressionTools.compressStringで格納したfieldのデータを
lukeでみようとしたんだけど、luke 1.0.1 では見れなかった。
Show Full Textしたあと、Show Contents AsでCompressという選択肢を追加するようにした。

lukeのサイト
http://code.google.com/p/luke/
から、
subversionをチェックアウトしたものにあてる。

documentの画面でみれたらいいなぁとおもったり、
選択肢は、Compressじゃなくて、Decompressなんじゃないかなぁとか、
そもそも自分の日本語がおかしいなぁとかいろいろあるが
とりあえず。

Index: src/org/getopt/luke/Luke.java
===================================================================
--- src/org/getopt/luke/Luke.java	(revision 39)
+++ src/org/getopt/luke/Luke.java	(working copy)
@@ -31,6 +31,7 @@
 import java.text.NumberFormat;
 import java.util.*;
 import java.util.Map.Entry;
+import java.util.zip.DataFormatException;
 import java.util.zip.GZIPOutputStream;
 
 import javax.swing.JFileChooser;
@@ -40,6 +41,7 @@
 import org.apache.lucene.analysis.*;
 import org.apache.lucene.analysis.payloads.PayloadHelper;
 import org.apache.lucene.analysis.standard.StandardAnalyzer;
+import org.apache.lucene.document.CompressionTools;
 import org.apache.lucene.document.DateTools;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
@@ -2871,6 +2873,14 @@
       setString(find(dialog, "unit"), "text", " bytes");
       value = Util.bytesToHex(data, 0, data.length, true);
       len = data.length;
+    } else if (enc.equals("cbCompress")){
+    	try {
+    		value = CompressionTools.decompressString(data);
+    		len = value.length();
+		} catch (DataFormatException e) {
+			warn = true;
+	       value = Util.bytesToHex(data, 0, data.length, true);
+		}
     } else if (enc.equals("cbUtf")) {
       setString(find(dialog, "unit"), "text", " UTF-8 characters");
       value = f.stringValue();
Index: src/xml/positions.xml
===================================================================
--- src/xml/positions.xml	(revision 39)
+++ src/xml/positions.xml	(working copy)
@@ -19,6 +19,7 @@
 			<choice name="cbHex" text="Hex dump"/>
 			<choice name="cbInt" text="Array of int"/>
 			<choice name="cbFloat" text="Array of float"/>
+			<choice name="cbCompress" text="Compress"/>
 		</combobox>
 	</panel>
 	<table colspan="3" name="pTable" halign="fill" valign="fill" weightx="1" weighty="1">
Index: src/xml/field.xml
===================================================================
--- src/xml/field.xml	(revision 39)
+++ src/xml/field.xml	(working copy)
@@ -19,6 +19,7 @@
 			<choice name="cbNum" text="Number"/>
 			<choice name="cbInt" text="Array of int"/>
 			<choice name="cbFloat" text="Array of float"/>
+			<choice name="cbCompress" text="Compress"/>
 		</combobox>
 	</panel>
 	<textarea colspan="2" font="courier" width="370" height="150" wrap="false" weightx="1" weighty="1" halign="fill" valign="fill" editable="false" border="true" name="fDataText"/>