public void addToAttribute()

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;
            }
        }