class ExtensionDescriptor extends BaseDescriptor {


    private static Logger LOG = LoggerFactory.getLogger(ExtensionDescriptor.class.getName());

    ByteBuffer data;


    //todo: add this better to the tags list?
    //14496-1:2010 p.20:
    //0x6A-0xBF Reserved for ISO use
    //0xC0-0xFE User private
    //
    //ExtDescrTagStartRange = 0x6A
    //ExtDescrTagEndRange = 0xFE
    static int[] allTags() {<FILL_FUNCTION_BODY>}

    @Override
    public void parseDetail(ByteBuffer bb) throws IOException {
        data = bb.slice();
        ((Buffer)bb).position(bb.position() + data.remaining());
    }

    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder();
        sb.append("ExtensionDescriptor");
        sb.append("tag=").append(tag);
        sb.append(",bytes=").append(Hex.encodeHex(data.array()));
        sb.append('}');
        return sb.toString();
    }

    @Override
    public ByteBuffer serialize() {
        ByteBuffer out = ByteBuffer.allocate(getSize());
        IsoTypeWriter.writeUInt8(out, tag);
        writeSize(out, getContentSize());
        out.put(data.duplicate());
        return out;
    }

    @Override
    int getContentSize() {
        return data.remaining();
    }
}

        int[] ints = new int[0xFE - 0x6A];

        for (int i = 0x6A; i < 0xFE; i++) {
            final int pos = i - 0x6A;
            LOG.trace("pos: {}", pos);
            ints[pos] = i;
        }
        return ints;
    
<methods>public void <init>() ,public int getSize() ,public int getSizeSize() ,public int getTag() ,public final void parse(int, java.nio.ByteBuffer) throws java.io.IOException,public abstract void parseDetail(java.nio.ByteBuffer) throws java.io.IOException,public abstract java.nio.ByteBuffer serialize() ,public java.lang.String toString() ,public void writeSize(java.nio.ByteBuffer, int) <variables>int sizeBytes,int sizeOfInstance,int tag