1 package net.mograsim.logic.core.types;
3 import net.mograsim.logic.core.wires.CoreWire.ReadEnd;
4 import net.mograsim.preferences.ColorDefinition;
5 import net.mograsim.preferences.ColorDefinition.BuiltInColor;
6 import net.mograsim.preferences.Preferences;
8 public class BitVectorFormatter
10 public static String formatValueAsString(ReadEnd end)
12 return formatAsString(end == null ? null : end.getValues());
15 public static String formatAsString(BitVector bitVector)
17 if (bitVector == null)
19 return bitVector.toString();
22 // TODO doesn't this belong to logic.model?
23 public static ColorDefinition formatAsColor(ReadEnd end)
25 return formatAsColor(end == null ? null : end.getValues());
28 public static ColorDefinition formatAsColor(BitVector bitVector)
30 // TODO maybe find a color assignment for multiple-bit bit vectors?
31 if (bitVector == null || bitVector.length() != 1)
32 return new ColorDefinition(BuiltInColor.COLOR_BLACK);
33 switch (bitVector.getLSBit(0))
36 return Preferences.current().getColorDefinition("net.mograsim.logic.model.color.bit.one");
38 return Preferences.current().getColorDefinition("net.mograsim.logic.model.color.bit.u");
40 return Preferences.current().getColorDefinition("net.mograsim.logic.model.color.bit.x");
42 return Preferences.current().getColorDefinition("net.mograsim.logic.model.color.bit.z");
44 return Preferences.current().getColorDefinition("net.mograsim.logic.model.color.bit.zero");
46 throw new IllegalArgumentException("Unknown enum constant: " + bitVector.getLSBit(0));
50 private BitVectorFormatter()
52 throw new UnsupportedOperationException("No BitVectorFormatter instances");