import edu.berkeley.sbp.util.*;
/** implementation of <tt>Topology</tt> for any class for which there is a mapping to the <tt>int</tt>s */
import edu.berkeley.sbp.util.*;
/** implementation of <tt>Topology</tt> for any class for which there is a mapping to the <tt>int</tt>s */
private final Range.Set rs;
private final Functor<V,Integer> f;
private final Range.Set rs;
private final Functor<V,Integer> f;
private int toInt(V v) { return f==null?((IntegerMappable)v).toInt():f.invoke(v); }
public Range.Set getRanges() { return new Range.Set(rs); }
private int toInt(V v) { return f==null?((IntegerMappable)v).toInt():f.invoke(v); }
public Range.Set getRanges() { return new Range.Set(rs); }
public IntegerTopology(Functor<V,Integer> f) { this(f, new Range.Set()); }
public IntegerTopology(Functor<V,Integer> f, V a) { this(f, f==null?((IntegerMappable)a).toInt():f.invoke(a)); }
public IntegerTopology(Functor<V,Integer> f) { this(f, new Range.Set()); }
public IntegerTopology(Functor<V,Integer> f, V a) { this(f, f==null?((IntegerMappable)a).toInt():f.invoke(a)); }