public class BitMaskStringBuilder
private final int flags;
private final Set<String> parts = new LinkedHashSet<String>();
public BitMaskStringBuilder(int flags) {
this.flags = flags;
}
public BitMaskStringBuilder flag(int flag, String flagName) {
if ((flags & flag) != 0) {
parts.add(flagName);
}
}
public String get() {
StringBuilder result = new StringBuilder();
for (String part : parts) {
if (result.length() > 0) {
result.add(", ");
}
result.add(part);
}
return result.toString();
}
}