Search in sources :

Example 1 with RawAttribute

use of com.taobao.android.dx.cf.attrib.RawAttribute in project atlas by alibaba.

the class AttributeFactory method parse0.

/**
 * Parses attribute content. The base class implements this by constructing
 * an instance of {@link RawAttribute}. Subclasses are expected to
 * override this to do something better in most cases.
 *
 * @param cf {@code non-null;} class file to parse from
 * @param context context to parse in; one of the {@code CTX_*}
 * constants
 * @param name {@code non-null;} the attribute name
 * @param offset offset into {@code bytes} to start parsing at; this
 * is the offset to the start of attribute data, not to the header
 * @param length the length of the attribute data
 * @param observer {@code null-ok;} parse observer to report to, if any
 * @return {@code non-null;} an appropriately-constructed {@link Attribute}
 */
protected Attribute parse0(DirectClassFile cf, int context, String name, int offset, int length, ParseObserver observer) {
    ByteArray bytes = cf.getBytes();
    ConstantPool pool = cf.getConstantPool();
    Attribute result = new RawAttribute(name, bytes, offset, length, pool);
    if (observer != null) {
        observer.parsed(bytes, offset, length, "attribute data");
    }
    return result;
}
Also used : RawAttribute(com.taobao.android.dx.cf.attrib.RawAttribute) Attribute(com.taobao.android.dx.cf.iface.Attribute) ConstantPool(com.taobao.android.dx.rop.cst.ConstantPool) RawAttribute(com.taobao.android.dx.cf.attrib.RawAttribute) ByteArray(com.taobao.android.dx.util.ByteArray)

Aggregations

RawAttribute (com.taobao.android.dx.cf.attrib.RawAttribute)1 Attribute (com.taobao.android.dx.cf.iface.Attribute)1 ConstantPool (com.taobao.android.dx.rop.cst.ConstantPool)1 ByteArray (com.taobao.android.dx.util.ByteArray)1