X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;ds=sidebyside;f=src%2Fedu%2Fberkeley%2Fsbp%2Fchr%2FCharTopology.java;h=cd482de276c9ccba2d5e48cdcff13d1f48c334f1;hb=23091054a6842031d168c2628216c2310149cc5d;hp=d407e992e470422a9bf8689cbb2d72545588b20c;hpb=927dc9b785de472f2237c5adbc4d2ad12f16cc2d;p=sbp.git diff --git a/src/edu/berkeley/sbp/chr/CharTopology.java b/src/edu/berkeley/sbp/chr/CharTopology.java index d407e99..cd482de 100644 --- a/src/edu/berkeley/sbp/chr/CharTopology.java +++ b/src/edu/berkeley/sbp/chr/CharTopology.java @@ -7,18 +7,19 @@ public class CharTopology extends IntegerTopology implements Functor< public CharTopology() { super(null); } public CharTopology(Range.Set r) { super(null, r); } + public CharTopology(Topology it) { this(((IntegerTopology)it.unwrap()).getRanges()); } public CharTopology(char a, char b) { super(null, a, b); } public Integer invoke(Character c) { return (int)c.charValue(); } public String toString() { StringBuffer sb = new StringBuffer(); - sb.append('['); Range.Set ranges = getRanges(); if (ranges.size() == -1 || ranges.size() > Character.MAX_VALUE/2) { sb.append('~'); ranges = ranges.complement(); } + sb.append('['); ranges = ranges.intersect(new Range.Set(new Range(0, Character.MAX_VALUE))); for(Range r : ranges) { if (r.isMinNegInf() || r.isMaxPosInf()) throw new Error("should not happen"); @@ -34,6 +35,8 @@ public class CharTopology extends IntegerTopology implements Functor< return sb.toString(); } - private String esc(char c) { return StringUtil.escapify(c+"", "[]-~\\\"\'\n\r"); } + private String esc(char c) { + return StringUtil.escapify(c+"", "[]-~\\\"\'\n\r"); + } }