public void addAttributeToBand()

in src/main/java/org/apache/commons/compress/harmony/pack200/NewAttributeBands.java [179:234]


        public void addAttributeToBand(final NewAttribute attribute, final InputStream inputStream) {
            Object val = null;
            int value = 0;
            switch (tag) {
            case "B":
            case "FB":
                value = readInteger(1, inputStream) & 0xFF; // unsigned byte
                break;
            case "SB":
                value = readInteger(1, inputStream);
                break;
            case "H":
            case "FH":
                value = readInteger(2, inputStream) & 0xFFFF; // unsigned short
                break;
            case "SH":
                value = readInteger(2, inputStream);
                break;
            case "I":
            case "FI":
            case "SI":
                value = readInteger(4, inputStream);
                break;
            case "V":
            case "FV":
            case "SV":
                break;
            default:
                if (tag.startsWith("PO") || tag.startsWith("OS")) {
                    final char uint_type = tag.substring(2).toCharArray()[0];
                    final int length = getLength(uint_type);
                    value = readInteger(length, inputStream);
                    value += previousIntegral.previousPValue;
                    val = attribute.getLabel(value);
                    previousPValue = value;
                } else if (tag.startsWith("P")) {
                    final char uint_type = tag.substring(1).toCharArray()[0];
                    final int length = getLength(uint_type);
                    value = readInteger(length, inputStream);
                    val = attribute.getLabel(value);
                    previousPValue = value;
                } else if (tag.startsWith("O")) {
                    final char uint_type = tag.substring(1).toCharArray()[0];
                    final int length = getLength(uint_type);
                    value = readInteger(length, inputStream);
                    value += previousIntegral.previousPValue;
                    val = attribute.getLabel(value);
                    previousPValue = value;
                }
                break;
            }
            if (val == null) {
                val = Integer.valueOf(value);
            }
            band.add(val);
        }