in src/main/java/org/apache/commons/compress/harmony/unpack200/NewAttributeBands.java [209:268]
public void addToAttribute(final int n, final NewAttribute attribute) {
int value = band[n];
switch (tag) {
case "B":
case "FB":
attribute.addInteger(1, value);
break;
case "SB":
attribute.addInteger(1, (byte) value);
break;
case "H":
case "FH":
attribute.addInteger(2, value);
break;
case "SH":
attribute.addInteger(2, (short) value);
break;
case "I":
case "FI":
case "SI":
attribute.addInteger(4, value);
break;
case "V":
case "FV":
case "SV":
break;
default:
if (tag.startsWith("PO")) {
final char uintType = tag.substring(2).toCharArray()[0];
final int length = getLength(uintType);
attribute.addBCOffset(length, value);
} else if (tag.startsWith("P")) {
final char uintType = tag.substring(1).toCharArray()[0];
final int length = getLength(uintType);
attribute.addBCIndex(length, value);
} else if (tag.startsWith("OS")) {
final char uintType = tag.substring(2).toCharArray()[0];
final int length = getLength(uintType);
switch (length) {
case 1:
value = (byte) value;
break;
case 2:
value = (short) value;
break;
case 4:
value = value;
break;
default:
break;
}
attribute.addBCLength(length, value);
} else if (tag.startsWith("O")) {
final char uintType = tag.substring(1).toCharArray()[0];
final int length = getLength(uintType);
attribute.addBCLength(length, value);
}
break;
}
}