1 package era.mi.logic.types;
3 import era.mi.logic.types.ColorDefinition.BuiltInColor;
4 import era.mi.logic.wires.Wire.ReadEnd;
6 public class BitVectorFormatter
8 public static String formatValueAsString(ReadEnd end)
10 return formatAsString(end == null ? null : end.getValues());
13 public static String formatAsString(BitVector bitVector)
15 if (bitVector == null)
18 return bitVector.toString();
21 public static ColorDefinition formatAsColor(ReadEnd end)
23 return formatAsColor(end == null ? null : end.getValues());
26 public static ColorDefinition formatAsColor(BitVector bitVector)
28 // TODO maybe find a color assignment for multiple-bit bit vectors?
29 if (bitVector == null || bitVector.length() != 1)
30 return new ColorDefinition(BuiltInColor.COLOR_BLACK);
32 switch (bitVector.getBit(0))
35 return new ColorDefinition(BuiltInColor.COLOR_GREEN);
37 return new ColorDefinition(BuiltInColor.COLOR_CYAN);
39 return new ColorDefinition(BuiltInColor.COLOR_RED);
41 return new ColorDefinition(BuiltInColor.COLOR_YELLOW);
43 return new ColorDefinition(BuiltInColor.COLOR_GRAY);
45 throw new IllegalArgumentException("Unknown enum constant: " + bitVector.getBit(0));
49 private BitVectorFormatter()
51 throw new UnsupportedOperationException("No BitVectorFormatter instances");