X-Git-Url: http://gitweb.fperrin.net/?a=blobdiff_plain;f=src%2Fcom%2Fhughes%2Fandroid%2Fdictionary%2Fengine%2FPairEntry.java;h=5406ed5b2468ff9d9393c79ea738e0e36a953fd4;hb=6a6d3ea1aec31eb2f7ba0a3fd727b80c96a67868;hp=7d30310bb9572bc3ac9072a4d2034524b7dafd4b;hpb=2394f65ade33af48769222a0701820e02a552433;p=Dictionary.git diff --git a/src/com/hughes/android/dictionary/engine/PairEntry.java b/src/com/hughes/android/dictionary/engine/PairEntry.java index 7d30310..5406ed5 100644 --- a/src/com/hughes/android/dictionary/engine/PairEntry.java +++ b/src/com/hughes/android/dictionary/engine/PairEntry.java @@ -7,7 +7,7 @@ import java.io.RandomAccessFile; import com.hughes.util.raf.RAFSerializable; import com.hughes.util.raf.RAFSerializer; -public class PairEntry extends Entry implements RAFSerializable { +public class PairEntry extends Entry implements RAFSerializable, Comparable { public static final class Pair { @@ -18,7 +18,11 @@ public class PairEntry extends Entry implements RAFSerializable { this.lang1 = lang1; this.lang2 = lang2; } - + + public Pair(final String lang1, final String lang2, final boolean swap) { + this(swap ? lang2 : lang1, swap ? lang1 : lang2); + } + public String toString() { return lang1 + " :: " + lang2; } @@ -27,6 +31,15 @@ public class PairEntry extends Entry implements RAFSerializable { return lang1 + "\t" + lang2; } + public String get(int i) { + if (i == 0) { + return lang1; + } else if (i == 1) { + return lang2; + } + throw new IllegalArgumentException(); + } + } public final Pair[] pairs; @@ -35,6 +48,10 @@ public class PairEntry extends Entry implements RAFSerializable { this.pairs = pairs; } + public PairEntry(final String lang1, final String lang2) { + this.pairs = new Pair[] { new Pair(lang1, lang2) }; + } + public PairEntry(final RandomAccessFile raf) throws IOException { pairs = new Pair[raf.readInt()]; for (int i = 0; i < pairs.length; ++i) { @@ -92,27 +109,41 @@ public class PairEntry extends Entry implements RAFSerializable { @Override public String getRawText(boolean compact) { final PairEntry pairEntry = getEntry(); - if (compact) { - return pairEntry.pairs[0].toStringTab(); - } - final StringBuilder builder = new StringBuilder(); - for (int i = 0; i < pairEntry.pairs.length; ++i) { - if (i > 0) { - builder.append(" | "); - } - builder.append(pairEntry.pairs[i].lang1); + return pairEntry.getRawText(compact); + } + + } + + public String getRawText(final boolean compact) { + if (compact) { + return this.pairs[0].toStringTab(); + } + final StringBuilder builder = new StringBuilder(); + for (int i = 0; i < this.pairs.length; ++i) { + if (i > 0) { + builder.append(" | "); } - builder.append("\t"); - for (int i = 0; i < pairEntry.pairs.length; ++i) { - if (i > 0) { - builder.append(" | "); - } - builder.append(pairEntry.pairs[i].lang2); + builder.append(this.pairs[i].lang1); + } + builder.append("\t"); + for (int i = 0; i < this.pairs.length; ++i) { + if (i > 0) { + builder.append(" | "); } - return builder.toString(); + builder.append(this.pairs[i].lang2); } + return builder.toString(); } - + @Override + public int compareTo(final PairEntry that) { + return this.getRawText(false).compareTo(that.getRawText(false)); + } + + @Override + public String toString() { + return getRawText(false); + } + }