forked from LupusNobilis/java-org.hwo
62 lines
961 B
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();
|
|
}
|
|
|
|
}
|