
org.monte.media.tiff.SetValueFormatter Maven / Gradle / Ivy
The newest version!
package org.monte.media.tiff;
import java.util.HashSet;
import java.util.LinkedList;
public class SetValueFormatter implements ValueFormatter {
private class Entry {
public Entry(String name, int bits) {
this.name=name;
this.bits=bits;
this.mask=bits;
}
public Entry(String name, int bits, int mask) {
this.name=name;
this.bits=bits;
this.mask=mask;
}
int bits;
int mask;
String name;
}
private LinkedList setDefinition;
public SetValueFormatter(Object... set) {
setDefinition = new LinkedList();
for (int i = 0; i < set.length; ) {
if (i setValue=new HashSet();
int intValue = ((Number) value).intValue();
for (Entry elem :setDefinition) {
if ((elem.mask&intValue)==elem.bits) {
setValue.add(elem.name);
}
}
return setValue;
}
return value;
}
@Override
public Object prettyFormat(Object value) {
if (value instanceof Number) {
int intValue = ((Number) value).intValue();
StringBuilder prettyValue=new StringBuilder();
for (Entry elem :setDefinition) {
if ((elem.mask&intValue)==elem.bits) {
if (prettyValue.length()>0) {
prettyValue.append(',');
}
prettyValue.append(elem.name);
}
}
prettyValue.insert(0, " {");
prettyValue.insert(0,Integer.toHexString(intValue));
prettyValue.insert(0, "0x");
prettyValue.append("}");
return prettyValue.toString();
}
return value;
}
@Override
public String descriptionFormat(Object value) {
if (value instanceof Number) {
int intValue = ((Number) value).intValue();
StringBuilder prettyValue=new StringBuilder();
for (Entry elem :setDefinition) {
if ((elem.mask&intValue)==elem.bits) {
if (prettyValue.length()>0) {
prettyValue.append(',');
}
prettyValue.append(elem.name);
}
}
return prettyValue.toString();
}
return null;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy