X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2Fchr%2FCharTopology.java;h=2d84ffc8877509c87560d99088fa114ea432059d;hb=61566402d83d5c06d57fb850e60ca0f82c27b9a2;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..2d84ffc 100644 --- a/src/edu/berkeley/sbp/chr/CharTopology.java +++ b/src/edu/berkeley/sbp/chr/CharTopology.java @@ -1,3 +1,5 @@ +// Copyright 2006-2007 all rights reserved; see LICENSE file for BSD-style license + package edu.berkeley.sbp.chr; import edu.berkeley.sbp.*; import edu.berkeley.sbp.misc.*; @@ -7,18 +9,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 +37,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"); + } }