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