java-org.hwo/src/org/hwo/BitField.java

62 lines
961 B
Java

package org.hwo;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
public class BitField {
private String[] labels;
public BitField()
{
labels = new String[32];
initialize();
}
public String[] getLabels()
{
return labels;
}
public BitField(Element element)
{
labels = new String[32];
initialize();
NodeList bits = element.getElementsByTagName("Bit");
for (int i=0;i<bits.getLength();i++)
{
Element bit = (Element)bits.item(i);
labels[ Integer.decode(bit.getAttribute("no")) ] = bit.getTextContent();
}
}
private void initialize()
{
for (int i=0;i<32;i++)
labels[i] = null;
}
public String toText(Integer value)
{
StringBuilder sb = new StringBuilder();
if (value != null)
for (int i=0;i<32;i++)
{
if (labels[i]!=null)
if ((value & 1<<i) != 0)
{
if (sb.toString().length()>0)
sb.append(", ");
sb.append(labels[i]);
}
}
return sb.toString();
}
}