1package com.android.hotspot2.asn1;
2
3import java.nio.ByteBuffer;
4import java.util.Collection;
5
6public class Asn1Octets extends Asn1Object {
7    private final byte[] mOctets;
8    private final int mBitResidual;
9
10    public Asn1Octets(int tag, Asn1Class asn1Class, int length, ByteBuffer data) {
11        super(tag, asn1Class, false, length);
12        mOctets = new byte[length];
13        data.get(mOctets);
14        mBitResidual = -1;
15    }
16
17    public Asn1Octets(int tag, Asn1Class asn1Class, int length, ByteBuffer data, int bitResidual) {
18        super(tag, asn1Class, false, length);
19        mOctets = new byte[length - 1];
20        data.get(mOctets);
21        mBitResidual = bitResidual;
22    }
23
24    public byte[] getOctets() {
25        return mOctets;
26    }
27
28    @Override
29    public Collection<Asn1Object> getChildren() {
30        throw new UnsupportedOperationException();
31    }
32
33    @Override
34    public String toString() {
35        StringBuilder sb = new StringBuilder();
36        for (byte b : mOctets) {
37            sb.append(String.format(" %02x", b & Asn1Decoder.ByteMask));
38        }
39        if (mBitResidual >= 0) {
40            return super.toString() + '=' + sb + '/' + mBitResidual;
41        } else if (getTag() == Asn1Decoder.TAG_NULL && getLength() == 0) {
42            return super.toString();
43        } else {
44            return super.toString() + '=' + sb;
45        }
46    }
47}
48