当前位置: 首页>>代码示例>>Java>>正文


Java ValueType.TYPE属性代码示例

本文整理汇总了Java中org.jf.dexlib2.ValueType.TYPE属性的典型用法代码示例。如果您正苦于以下问题:Java ValueType.TYPE属性的具体用法?Java ValueType.TYPE怎么用?Java ValueType.TYPE使用的例子?那么, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在org.jf.dexlib2.ValueType的用法示例。


在下文中一共展示了ValueType.TYPE属性的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: rewrite

@Nonnull @Override public EncodedValue rewrite(@Nonnull EncodedValue encodedValue) {
    switch (encodedValue.getValueType()) {
        case ValueType.TYPE:
            return new RewrittenTypeEncodedValue((TypeEncodedValue)encodedValue);
        case ValueType.FIELD:
            return new RewrittenFieldEncodedValue((FieldEncodedValue)encodedValue);
        case ValueType.METHOD:
            return new RewrittenMethodEncodedValue((MethodEncodedValue)encodedValue);
        case ValueType.ENUM:
            return new RewrittenEnumEncodedValue((EnumEncodedValue)encodedValue);
        case ValueType.ARRAY:
            return new RewrittenArrayEncodedValue((ArrayEncodedValue)encodedValue);
        case ValueType.ANNOTATION:
            return new RewrittenAnnotationEncodedValue((AnnotationEncodedValue)encodedValue);
        default:
            return encodedValue;
    }
}
 
开发者ID:CvvT,项目名称:andbg,代码行数:18,代码来源:EncodedValueRewriter.java

示例2: rewrite

@Override public EncodedValue rewrite( EncodedValue encodedValue) {
    switch (encodedValue.getValueType()) {
        case ValueType.TYPE:
            return new RewrittenTypeEncodedValue((TypeEncodedValue)encodedValue);
        case ValueType.FIELD:
            return new RewrittenFieldEncodedValue((FieldEncodedValue)encodedValue);
        case ValueType.METHOD:
            return new RewrittenMethodEncodedValue((MethodEncodedValue)encodedValue);
        case ValueType.ENUM:
            return new RewrittenEnumEncodedValue((EnumEncodedValue)encodedValue);
        case ValueType.ARRAY:
            return new RewrittenArrayEncodedValue((ArrayEncodedValue)encodedValue);
        case ValueType.ANNOTATION:
            return new RewrittenAnnotationEncodedValue((AnnotationEncodedValue)encodedValue);
        default:
            return encodedValue;
    }
}
 
开发者ID:AndreJCL,项目名称:JCL,代码行数:18,代码来源:EncodedValueRewriter.java

示例3: of

@Nonnull
public static ImmutableEncodedValue of(@Nonnull EncodedValue encodedValue) {
    switch (encodedValue.getValueType()) {
        case ValueType.BYTE:
            return ImmutableByteEncodedValue.of((ByteEncodedValue)encodedValue);
        case ValueType.SHORT:
            return ImmutableShortEncodedValue.of((ShortEncodedValue)encodedValue);
        case ValueType.CHAR:
            return ImmutableCharEncodedValue.of((CharEncodedValue)encodedValue);
        case ValueType.INT:
            return ImmutableIntEncodedValue.of((IntEncodedValue)encodedValue);
        case ValueType.LONG:
            return ImmutableLongEncodedValue.of((LongEncodedValue)encodedValue);
        case ValueType.FLOAT:
            return ImmutableFloatEncodedValue.of((FloatEncodedValue)encodedValue);
        case ValueType.DOUBLE:
            return ImmutableDoubleEncodedValue.of((DoubleEncodedValue)encodedValue);
        case ValueType.STRING:
            return ImmutableStringEncodedValue.of((StringEncodedValue)encodedValue);
        case ValueType.TYPE:
            return ImmutableTypeEncodedValue.of((TypeEncodedValue)encodedValue);
        case ValueType.FIELD:
            return ImmutableFieldEncodedValue.of((FieldEncodedValue)encodedValue);
        case ValueType.METHOD:
            return ImmutableMethodEncodedValue.of((MethodEncodedValue)encodedValue);
        case ValueType.ENUM:
            return ImmutableEnumEncodedValue.of((EnumEncodedValue)encodedValue);
        case ValueType.ARRAY:
            return ImmutableArrayEncodedValue.of((ArrayEncodedValue)encodedValue);
        case ValueType.ANNOTATION:
            return ImmutableAnnotationEncodedValue.of((AnnotationEncodedValue)encodedValue);
        case ValueType.NULL:
            return ImmutableNullEncodedValue.INSTANCE;
        case ValueType.BOOLEAN:
            return ImmutableBooleanEncodedValue.of((BooleanEncodedValue)encodedValue);
        default:
            Preconditions.checkArgument(false);
            return null;
    }
}
 
开发者ID:CvvT,项目名称:andbg,代码行数:40,代码来源:ImmutableEncodedValueFactory.java

示例4: writeEncodedValue

@Override protected void writeEncodedValue(@Nonnull InternalEncodedValueWriter writer,
                                           @Nonnull BuilderEncodedValue encodedValue) throws IOException {
    switch (encodedValue.getValueType()) {
        case ValueType.ANNOTATION:
            BuilderAnnotationEncodedValue annotationEncodedValue = (BuilderAnnotationEncodedValue)encodedValue;
            writer.writeAnnotation(annotationEncodedValue.typeReference, annotationEncodedValue.elements);
            break;
        case ValueType.ARRAY:
            BuilderArrayEncodedValue arrayEncodedValue = (BuilderArrayEncodedValue)encodedValue;
            writer.writeArray(arrayEncodedValue.elements);
            break;
        case ValueType.BOOLEAN:
            writer.writeBoolean(((BooleanEncodedValue)encodedValue).getValue());
            break;
        case ValueType.BYTE:
            writer.writeByte(((ByteEncodedValue)encodedValue).getValue());
            break;
        case ValueType.CHAR:
            writer.writeChar(((CharEncodedValue)encodedValue).getValue());
            break;
        case ValueType.DOUBLE:
            writer.writeDouble(((DoubleEncodedValue)encodedValue).getValue());
            break;
        case ValueType.ENUM:
            writer.writeEnum(((BuilderEnumEncodedValue)encodedValue).getValue());
            break;
        case ValueType.FIELD:
            writer.writeField(((BuilderFieldEncodedValue)encodedValue).fieldReference);
            break;
        case ValueType.FLOAT:
            writer.writeFloat(((FloatEncodedValue)encodedValue).getValue());
            break;
        case ValueType.INT:
            writer.writeInt(((IntEncodedValue)encodedValue).getValue());
            break;
        case ValueType.LONG:
            writer.writeLong(((LongEncodedValue)encodedValue).getValue());
            break;
        case ValueType.METHOD:
            writer.writeMethod(((BuilderMethodEncodedValue)encodedValue).methodReference);
            break;
        case ValueType.NULL:
            writer.writeNull();
            break;
        case ValueType.SHORT:
            writer.writeShort(((ShortEncodedValue)encodedValue).getValue());
            break;
        case ValueType.STRING:
            writer.writeString(((BuilderStringEncodedValue)encodedValue).stringReference);
            break;
        case ValueType.TYPE:
            writer.writeType(((BuilderTypeEncodedValue)encodedValue).typeReference);
            break;
        default:
            throw new ExceptionWithContext("Unrecognized value type: %d", encodedValue.getValueType());
    }
}
 
开发者ID:CvvT,项目名称:andbg,代码行数:57,代码来源:DexBuilder.java

示例5: internEncodedValue

@Nonnull private BuilderEncodedValue internEncodedValue(@Nonnull EncodedValue encodedValue) {
    switch (encodedValue.getValueType()) {
        case ValueType.ANNOTATION:
            return internAnnotationEncodedValue((AnnotationEncodedValue)encodedValue);
        case ValueType.ARRAY:
            return internArrayEncodedValue((ArrayEncodedValue)encodedValue);
        case ValueType.BOOLEAN:
            boolean value = ((BooleanEncodedValue)encodedValue).getValue();
            return value?BuilderBooleanEncodedValue.TRUE_VALUE:BuilderBooleanEncodedValue.FALSE_VALUE;
        case ValueType.BYTE:
            return new BuilderByteEncodedValue(((ByteEncodedValue)encodedValue).getValue());
        case ValueType.CHAR:
            return new BuilderCharEncodedValue(((CharEncodedValue)encodedValue).getValue());
        case ValueType.DOUBLE:
            return new BuilderDoubleEncodedValue(((DoubleEncodedValue)encodedValue).getValue());
        case ValueType.ENUM:
            return internEnumEncodedValue((EnumEncodedValue)encodedValue);
        case ValueType.FIELD:
            return internFieldEncodedValue((FieldEncodedValue)encodedValue);
        case ValueType.FLOAT:
            return new BuilderFloatEncodedValue(((FloatEncodedValue)encodedValue).getValue());
        case ValueType.INT:
            return new BuilderIntEncodedValue(((IntEncodedValue)encodedValue).getValue());
        case ValueType.LONG:
            return new BuilderLongEncodedValue(((LongEncodedValue)encodedValue).getValue());
        case ValueType.METHOD:
            return internMethodEncodedValue((MethodEncodedValue)encodedValue);
        case ValueType.NULL:
            return BuilderNullEncodedValue.INSTANCE;
        case ValueType.SHORT:
            return new BuilderShortEncodedValue(((ShortEncodedValue)encodedValue).getValue());
        case ValueType.STRING:
            return internStringEncodedValue((StringEncodedValue)encodedValue);
        case ValueType.TYPE:
            return internTypeEncodedValue((TypeEncodedValue)encodedValue);
        default:
            throw new ExceptionWithContext("Unexpected encoded value type: %d", encodedValue.getValueType());
    }
}
 
开发者ID:CvvT,项目名称:andbg,代码行数:39,代码来源:BuilderContext.java

示例6: of

public static ImmutableEncodedValue of(EncodedValue encodedValue) {
    switch (encodedValue.getValueType()) {
        case ValueType.BYTE:
            return ImmutableByteEncodedValue.of((ByteEncodedValue)encodedValue);
        case ValueType.SHORT:
            return ImmutableShortEncodedValue.of((ShortEncodedValue)encodedValue);
        case ValueType.CHAR:
            return ImmutableCharEncodedValue.of((CharEncodedValue)encodedValue);
        case ValueType.INT:
            return ImmutableIntEncodedValue.of((IntEncodedValue)encodedValue);
        case ValueType.LONG:
            return ImmutableLongEncodedValue.of((LongEncodedValue)encodedValue);
        case ValueType.FLOAT:
            return ImmutableFloatEncodedValue.of((FloatEncodedValue)encodedValue);
        case ValueType.DOUBLE:
            return ImmutableDoubleEncodedValue.of((DoubleEncodedValue)encodedValue);
        case ValueType.STRING:
            return ImmutableStringEncodedValue.of((StringEncodedValue)encodedValue);
        case ValueType.TYPE:
            return ImmutableTypeEncodedValue.of((TypeEncodedValue)encodedValue);
        case ValueType.FIELD:
            return ImmutableFieldEncodedValue.of((FieldEncodedValue)encodedValue);
        case ValueType.METHOD:
            return ImmutableMethodEncodedValue.of((MethodEncodedValue)encodedValue);
        case ValueType.ENUM:
            return ImmutableEnumEncodedValue.of((EnumEncodedValue)encodedValue);
        case ValueType.ARRAY:
            return ImmutableArrayEncodedValue.of((ArrayEncodedValue)encodedValue);
        case ValueType.ANNOTATION:
            return ImmutableAnnotationEncodedValue.of((AnnotationEncodedValue)encodedValue);
        case ValueType.NULL:
            return ImmutableNullEncodedValue.INSTANCE;
        case ValueType.BOOLEAN:
            return ImmutableBooleanEncodedValue.of((BooleanEncodedValue)encodedValue);
        default:
            Preconditions.checkArgument(false);
            return null;
    }
}
 
开发者ID:AndreJCL,项目名称:JCL,代码行数:39,代码来源:ImmutableEncodedValueFactory.java

示例7: internEncodedValue

private BuilderEncodedValue internEncodedValue( EncodedValue encodedValue) {
    switch (encodedValue.getValueType()) {
        case ValueType.ANNOTATION:
            return internAnnotationEncodedValue((AnnotationEncodedValue)encodedValue);
        case ValueType.ARRAY:
            return internArrayEncodedValue((ArrayEncodedValue)encodedValue);
        case ValueType.BOOLEAN:
            boolean value = ((BooleanEncodedValue)encodedValue).getValue();
            return value?BuilderBooleanEncodedValue.TRUE_VALUE:BuilderBooleanEncodedValue.FALSE_VALUE;
        case ValueType.BYTE:
            return new BuilderByteEncodedValue(((ByteEncodedValue)encodedValue).getValue());
        case ValueType.CHAR:
            return new BuilderCharEncodedValue(((CharEncodedValue)encodedValue).getValue());
        case ValueType.DOUBLE:
            return new BuilderDoubleEncodedValue(((DoubleEncodedValue)encodedValue).getValue());
        case ValueType.ENUM:
            return internEnumEncodedValue((EnumEncodedValue)encodedValue);
        case ValueType.FIELD:
            return internFieldEncodedValue((FieldEncodedValue)encodedValue);
        case ValueType.FLOAT:
            return new BuilderFloatEncodedValue(((FloatEncodedValue)encodedValue).getValue());
        case ValueType.INT:
            return new BuilderIntEncodedValue(((IntEncodedValue)encodedValue).getValue());
        case ValueType.LONG:
            return new BuilderLongEncodedValue(((LongEncodedValue)encodedValue).getValue());
        case ValueType.METHOD:
            return internMethodEncodedValue((MethodEncodedValue)encodedValue);
        case ValueType.NULL:
            return BuilderNullEncodedValue.INSTANCE;
        case ValueType.SHORT:
            return new BuilderShortEncodedValue(((ShortEncodedValue)encodedValue).getValue());
        case ValueType.STRING:
            return internStringEncodedValue((StringEncodedValue)encodedValue);
        case ValueType.TYPE:
            return internTypeEncodedValue((TypeEncodedValue)encodedValue);
        default:
            throw new ExceptionWithContext("Unexpected encoded value type: %d", encodedValue.getValueType());
    }
}
 
开发者ID:AndreJCL,项目名称:JCL,代码行数:39,代码来源:DexBuilder.java

示例8: getEncodeValue

public static Object getEncodeValue(EncodedValue encodedValue) {
    switch (encodedValue.getValueType()) {
        case ValueType.BOOLEAN:
            return ((BooleanEncodedValue) encodedValue).getValue();
        case ValueType.BYTE:
            return ((ByteEncodedValue) encodedValue).getValue();
        case ValueType.CHAR:
            return ((CharEncodedValue) encodedValue).getValue();
        case ValueType.DOUBLE:
            return ((DoubleEncodedValue) encodedValue).getValue();
        case ValueType.FLOAT:
            return ((FloatEncodedValue) encodedValue).getValue();
        case ValueType.INT:
            return ((IntEncodedValue) encodedValue).getValue();
        case ValueType.LONG:
            return ((LongEncodedValue) encodedValue).getValue();
        case ValueType.NULL:
            return "null";
        case ValueType.SHORT:
            return ((ShortEncodedValue) encodedValue).getValue();
        case ValueType.STRING:
            return ((StringEncodedValue) encodedValue).getValue();
        case ValueType.TYPE:
            return ((TypeEncodedValue) encodedValue).getValue();
        case ValueType.FIELD:
            return ((FieldEncodedValue) encodedValue).getValue();
        case ValueType.ENUM:
            return ((EnumEncodedValue) encodedValue).getValue();
        case ValueType.METHOD:
            return ((MethodEncodedValue) encodedValue).getValue().getName();
        case ValueType.ARRAY: {
            ArrayList<String> vals = new ArrayList<>();
            StringJoiner joiner = new StringJoiner(",");
            List<? extends EncodedValue> valueS = ((ArrayEncodedValue) encodedValue).getValue();
            for (EncodedValue encodedValue1 : valueS) {
                joiner.add(String.valueOf(getEncodeValue(encodedValue1)));
            }
            return String.format("[%s]", joiner.toString());
        }
        case ValueType.ANNOTATION:
            return ((AnnotationEncodedValue) encodedValue).getType();//FIXME:
    }
   
    return "Unknown";

}
 
开发者ID:dodola,项目名称:SimpleSmali,代码行数:46,代码来源:DexEncodedValueUtils.java

示例9: writeTo

public static void writeTo(@Nonnull IndentingWriter writer, @Nonnull EncodedValue encodedValue,
                           @Nullable String containingClass)
        throws IOException {
    switch (encodedValue.getValueType()) {
        case ValueType.ANNOTATION:
            AnnotationEncodedValueAdaptor.writeTo(writer, (AnnotationEncodedValue) encodedValue, containingClass);
            return;
        case ValueType.ARRAY:
            ArrayEncodedValueAdaptor.writeTo(writer, (ArrayEncodedValue)encodedValue, containingClass);
            return;
        case ValueType.BOOLEAN:
            BooleanRenderer.writeTo(writer, ((BooleanEncodedValue) encodedValue).getValue());
            return;
        case ValueType.BYTE:
            ByteRenderer.writeTo(writer, ((ByteEncodedValue) encodedValue).getValue());
            return;
        case ValueType.CHAR:
            CharRenderer.writeTo(writer, ((CharEncodedValue) encodedValue).getValue());
            return;
        case ValueType.DOUBLE:
            DoubleRenderer.writeTo(writer, ((DoubleEncodedValue) encodedValue).getValue());
            return;
        case ValueType.ENUM:
            EnumEncodedValue enumEncodedValue = (EnumEncodedValue)encodedValue;
            boolean useImplicitReference = false;
            if (enumEncodedValue.getValue().getDefiningClass().equals(containingClass)) {
                useImplicitReference = true;
            }
            writer.write(".enum ");
            ReferenceUtil.writeFieldDescriptor(writer, enumEncodedValue.getValue(), useImplicitReference);
            return;
        case ValueType.FIELD:
            FieldEncodedValue fieldEncodedValue = (FieldEncodedValue)encodedValue;
            useImplicitReference = false;
            if (fieldEncodedValue.getValue().getDefiningClass().equals(containingClass)) {
                useImplicitReference = true;
            }
            ReferenceUtil.writeFieldDescriptor(writer, fieldEncodedValue.getValue(), useImplicitReference);
            return;
        case ValueType.FLOAT:
            FloatRenderer.writeTo(writer, ((FloatEncodedValue) encodedValue).getValue());
            return;
        case ValueType.INT:
            IntegerRenderer.writeTo(writer, ((IntEncodedValue) encodedValue).getValue());
            return;
        case ValueType.LONG:
            LongRenderer.writeTo(writer, ((LongEncodedValue) encodedValue).getValue());
            return;
        case ValueType.METHOD:
            MethodEncodedValue methodEncodedValue = (MethodEncodedValue)encodedValue;
            useImplicitReference = false;
            if (methodEncodedValue.getValue().getDefiningClass().equals(containingClass)) {
                useImplicitReference = true;
            }
            ReferenceUtil.writeMethodDescriptor(writer, methodEncodedValue.getValue(), useImplicitReference);
            return;
        case ValueType.NULL:
            writer.write("null");
            return;
        case ValueType.SHORT:
            ShortRenderer.writeTo(writer, ((ShortEncodedValue) encodedValue).getValue());
            return;
        case ValueType.STRING:
            ReferenceFormatter.writeStringReference(writer, ((StringEncodedValue) encodedValue).getValue());
            return;
        case ValueType.TYPE:
            writer.write(((TypeEncodedValue)encodedValue).getValue());
    }
}
 
开发者ID:alibaba,项目名称:atlas,代码行数:69,代码来源:EncodedValueAdaptor.java

示例10: writeEncodedValue

@Override protected void writeEncodedValue(@Nonnull InternalEncodedValueWriter writer,
                                           @Nonnull EncodedValue encodedValue) throws IOException {
    switch (encodedValue.getValueType()) {
        case ValueType.ANNOTATION:
            AnnotationEncodedValue annotationEncodedValue = (AnnotationEncodedValue)encodedValue;
            writer.writeAnnotation(annotationEncodedValue.getType(), annotationEncodedValue.getElements());
            break;
        case ValueType.ARRAY:
            ArrayEncodedValue arrayEncodedValue = (ArrayEncodedValue)encodedValue;
            writer.writeArray(arrayEncodedValue.getValue());
            break;
        case ValueType.BOOLEAN:
            writer.writeBoolean(((BooleanEncodedValue)encodedValue).getValue());
            break;
        case ValueType.BYTE:
            writer.writeByte(((ByteEncodedValue)encodedValue).getValue());
            break;
        case ValueType.CHAR:
            writer.writeChar(((CharEncodedValue)encodedValue).getValue());
            break;
        case ValueType.DOUBLE:
            writer.writeDouble(((DoubleEncodedValue)encodedValue).getValue());
            break;
        case ValueType.ENUM:
            writer.writeEnum(((EnumEncodedValue)encodedValue).getValue());
            break;
        case ValueType.FIELD:
            writer.writeField(((FieldEncodedValue)encodedValue).getValue());
            break;
        case ValueType.FLOAT:
            writer.writeFloat(((FloatEncodedValue)encodedValue).getValue());
            break;
        case ValueType.INT:
            writer.writeInt(((IntEncodedValue)encodedValue).getValue());
            break;
        case ValueType.LONG:
            writer.writeLong(((LongEncodedValue)encodedValue).getValue());
            break;
        case ValueType.METHOD:
            writer.writeMethod(((MethodEncodedValue)encodedValue).getValue());
            break;
        case ValueType.NULL:
            writer.writeNull();
            break;
        case ValueType.SHORT:
            writer.writeShort(((ShortEncodedValue)encodedValue).getValue());
            break;
        case ValueType.STRING:
            writer.writeString(((StringEncodedValue)encodedValue).getValue());
            break;
        case ValueType.TYPE:
            writer.writeType(((TypeEncodedValue)encodedValue).getValue());
            break;
        default:
            throw new ExceptionWithContext("Unrecognized value type: %d", encodedValue.getValueType());
    }
}
 
开发者ID:CvvT,项目名称:andbg,代码行数:57,代码来源:DexPool.java

示例11: readFrom

@Nonnull
public static EncodedValue readFrom(@Nonnull DexReader reader) {
    int startOffset = reader.getOffset();

    try {
        int b = reader.readUbyte();
        int valueType = b & 0x1f;
        int valueArg = b >>> 5;

        switch (valueType) {
            case ValueType.BYTE:
                Preconditions.checkValueArg(valueArg, 0);
                return new ImmutableByteEncodedValue((byte)reader.readByte());
            case ValueType.SHORT:
                Preconditions.checkValueArg(valueArg, 1);
                return new ImmutableShortEncodedValue((short)reader.readSizedInt(valueArg + 1));
            case ValueType.CHAR:
                Preconditions.checkValueArg(valueArg, 1);
                return new ImmutableCharEncodedValue((char)reader.readSizedSmallUint(valueArg + 1));
            case ValueType.INT:
                Preconditions.checkValueArg(valueArg, 3);
                return new ImmutableIntEncodedValue(reader.readSizedInt(valueArg + 1));
            case ValueType.LONG:
                Preconditions.checkValueArg(valueArg, 7);
                return new ImmutableLongEncodedValue(reader.readSizedLong(valueArg + 1));
            case ValueType.FLOAT:
                Preconditions.checkValueArg(valueArg, 3);
                return new ImmutableFloatEncodedValue(Float.intBitsToFloat(
                        reader.readSizedRightExtendedInt(valueArg + 1)));
            case ValueType.DOUBLE:
                Preconditions.checkValueArg(valueArg, 7);
                return new ImmutableDoubleEncodedValue(Double.longBitsToDouble(
                        reader.readSizedRightExtendedLong(valueArg + 1)));
            case ValueType.STRING:
                Preconditions.checkValueArg(valueArg, 3);
                return new DexBackedStringEncodedValue(reader, valueArg);
            case ValueType.TYPE:
                Preconditions.checkValueArg(valueArg, 3);
                return new DexBackedTypeEncodedValue(reader, valueArg);
            case ValueType.FIELD:
                Preconditions.checkValueArg(valueArg, 3);
                return new DexBackedFieldEncodedValue(reader, valueArg);
            case ValueType.METHOD:
                Preconditions.checkValueArg(valueArg, 3);
                return new DexBackedMethodEncodedValue(reader, valueArg);
            case ValueType.ENUM:
                Preconditions.checkValueArg(valueArg, 3);
                return new DexBackedEnumEncodedValue(reader, valueArg);
            case ValueType.ARRAY:
                Preconditions.checkValueArg(valueArg, 0);
                return new DexBackedArrayEncodedValue(reader);
            case ValueType.ANNOTATION:
                Preconditions.checkValueArg(valueArg, 0);
                return new DexBackedAnnotationEncodedValue(reader);
            case ValueType.NULL:
                Preconditions.checkValueArg(valueArg, 0);
                return ImmutableNullEncodedValue.INSTANCE;
            case ValueType.BOOLEAN:
                Preconditions.checkValueArg(valueArg, 1);
                return ImmutableBooleanEncodedValue.forBoolean(valueArg == 1);
            default:
                throw new ExceptionWithContext("Invalid encoded_value type: 0x%x", valueType);
        }
    } catch (Exception ex) {
        throw ExceptionWithContext.withContext(ex, "Error while reading encoded value at offset 0x%x", startOffset);
    }
}
 
开发者ID:CvvT,项目名称:andbg,代码行数:67,代码来源:DexBackedEncodedValue.java

示例12: skipFrom

public static void skipFrom(@Nonnull DexReader reader) {
    int startOffset = reader.getOffset();

    try {
        int b = reader.readUbyte();
        int valueType = b & 0x1f;

        switch (valueType) {
            case ValueType.BYTE:
                reader.skipByte();
                break;
            case ValueType.SHORT:
            case ValueType.CHAR:
            case ValueType.INT:
            case ValueType.LONG:
            case ValueType.FLOAT:
            case ValueType.DOUBLE:
            case ValueType.STRING:
            case ValueType.TYPE:
            case ValueType.FIELD:
            case ValueType.METHOD:
            case ValueType.ENUM:
                int valueArg = b >>> 5;
                reader.moveRelative(valueArg+1);
                break;
            case ValueType.ARRAY:
                DexBackedArrayEncodedValue.skipFrom(reader);
                break;
            case ValueType.ANNOTATION:
                DexBackedAnnotationEncodedValue.skipFrom(reader);
                break;
            case ValueType.NULL:
            case ValueType.BOOLEAN:
                break;
            default:
                throw new ExceptionWithContext("Invalid encoded_value type: 0x%x", valueType);
        }
    } catch (Exception ex) {
        throw ExceptionWithContext.withContext(ex, "Error while skipping encoded value at offset 0x%x",
                startOffset);
    }
}
 
开发者ID:CvvT,项目名称:andbg,代码行数:42,代码来源:DexBackedEncodedValue.java

示例13: writeTo

public static void writeTo(IndentingWriter writer, EncodedValue encodedValue) throws IOException {
    switch (encodedValue.getValueType()) {
        case ValueType.ANNOTATION:
            AnnotationEncodedValueAdaptor.writeTo(writer, (AnnotationEncodedValue)encodedValue);
            return;
        case ValueType.ARRAY:
            ArrayEncodedValueAdaptor.writeTo(writer, (ArrayEncodedValue)encodedValue);
            return;
        case ValueType.BOOLEAN:
            BooleanRenderer.writeTo(writer, ((BooleanEncodedValue)encodedValue).getValue());
            return;
        case ValueType.BYTE:
            ByteRenderer.writeTo(writer, ((ByteEncodedValue)encodedValue).getValue());
            return;
        case ValueType.CHAR:
            CharRenderer.writeTo(writer, ((CharEncodedValue)encodedValue).getValue());
            return;
        case ValueType.DOUBLE:
            DoubleRenderer.writeTo(writer, ((DoubleEncodedValue)encodedValue).getValue());
            return;
        case ValueType.ENUM:
            writer.write(".enum ");
            ReferenceUtil.writeFieldDescriptor(writer, ((EnumEncodedValue)encodedValue).getValue());
            return;
        case ValueType.FIELD:
            ReferenceUtil.writeFieldDescriptor(writer, ((FieldEncodedValue)encodedValue).getValue());
            return;
        case ValueType.FLOAT:
            FloatRenderer.writeTo(writer, ((FloatEncodedValue)encodedValue).getValue());
            return;
        case ValueType.INT:
            IntegerRenderer.writeTo(writer, ((IntEncodedValue)encodedValue).getValue());
            return;
        case ValueType.LONG:
            LongRenderer.writeTo(writer, ((LongEncodedValue)encodedValue).getValue());
            return;
        case ValueType.METHOD:
            ReferenceUtil.writeMethodDescriptor(writer, ((MethodEncodedValue)encodedValue).getValue());
            return;
        case ValueType.NULL:
            writer.write("null");
            return;
        case ValueType.SHORT:
            ShortRenderer.writeTo(writer, ((ShortEncodedValue)encodedValue).getValue());
            return;
        case ValueType.STRING:
            ReferenceFormatter.writeStringReference(writer, ((StringEncodedValue)encodedValue).getValue());
            return;
        case ValueType.TYPE:
            writer.write(((TypeEncodedValue)encodedValue).getValue());
    }
}
 
开发者ID:Miracle963,项目名称:zjdroid,代码行数:52,代码来源:EncodedValueAdaptor.java

示例14: writeEncodedValue

@Override protected void writeEncodedValue( InternalEncodedValueWriter writer,
                                            EncodedValue encodedValue) throws IOException {
    switch (encodedValue.getValueType()) {
        case ValueType.ANNOTATION:
            AnnotationEncodedValue annotationEncodedValue = (AnnotationEncodedValue)encodedValue;
            writer.writeAnnotation(annotationEncodedValue.getType(), annotationEncodedValue.getElements());
            break;
        case ValueType.ARRAY:
            ArrayEncodedValue arrayEncodedValue = (ArrayEncodedValue)encodedValue;
            writer.writeArray(arrayEncodedValue.getValue());
            break;
        case ValueType.BOOLEAN:
            writer.writeBoolean(((BooleanEncodedValue)encodedValue).getValue());
            break;
        case ValueType.BYTE:
            writer.writeByte(((ByteEncodedValue)encodedValue).getValue());
            break;
        case ValueType.CHAR:
            writer.writeChar(((CharEncodedValue)encodedValue).getValue());
            break;
        case ValueType.DOUBLE:
            writer.writeDouble(((DoubleEncodedValue)encodedValue).getValue());
            break;
        case ValueType.ENUM:
            writer.writeEnum(((EnumEncodedValue)encodedValue).getValue());
            break;
        case ValueType.FIELD:
            writer.writeField(((FieldEncodedValue)encodedValue).getValue());
            break;
        case ValueType.FLOAT:
            writer.writeFloat(((FloatEncodedValue)encodedValue).getValue());
            break;
        case ValueType.INT:
            writer.writeInt(((IntEncodedValue)encodedValue).getValue());
            break;
        case ValueType.LONG:
            writer.writeLong(((LongEncodedValue)encodedValue).getValue());
            break;
        case ValueType.METHOD:
            writer.writeMethod(((MethodEncodedValue)encodedValue).getValue());
            break;
        case ValueType.NULL:
            writer.writeNull();
            break;
        case ValueType.SHORT:
            writer.writeShort(((ShortEncodedValue)encodedValue).getValue());
            break;
        case ValueType.STRING:
            writer.writeString(((StringEncodedValue)encodedValue).getValue());
            break;
        case ValueType.TYPE:
            writer.writeType(((TypeEncodedValue)encodedValue).getValue());
            break;
        default:
            throw new ExceptionWithContext("Unrecognized value type: %d", encodedValue.getValueType());
    }
}
 
开发者ID:AndreJCL,项目名称:JCL,代码行数:57,代码来源:DexPool.java

示例15: writeEncodedValue

@Override protected void writeEncodedValue( InternalEncodedValueWriter writer,
                                            BuilderEncodedValue encodedValue) throws IOException {
    switch (encodedValue.getValueType()) {
        case ValueType.ANNOTATION:
            BuilderAnnotationEncodedValue annotationEncodedValue = (BuilderAnnotationEncodedValue)encodedValue;
            writer.writeAnnotation(annotationEncodedValue.typeReference, annotationEncodedValue.elements);
            break;
        case ValueType.ARRAY:
            BuilderArrayEncodedValue arrayEncodedValue = (BuilderArrayEncodedValue)encodedValue;
            writer.writeArray(arrayEncodedValue.elements);
            break;
        case ValueType.BOOLEAN:
            writer.writeBoolean(((BooleanEncodedValue)encodedValue).getValue());
            break;
        case ValueType.BYTE:
            writer.writeByte(((ByteEncodedValue)encodedValue).getValue());
            break;
        case ValueType.CHAR:
            writer.writeChar(((CharEncodedValue)encodedValue).getValue());
            break;
        case ValueType.DOUBLE:
            writer.writeDouble(((DoubleEncodedValue)encodedValue).getValue());
            break;
        case ValueType.ENUM:
            writer.writeEnum(((BuilderEnumEncodedValue)encodedValue).getValue());
            break;
        case ValueType.FIELD:
            writer.writeField(((BuilderFieldEncodedValue)encodedValue).fieldReference);
            break;
        case ValueType.FLOAT:
            writer.writeFloat(((FloatEncodedValue)encodedValue).getValue());
            break;
        case ValueType.INT:
            writer.writeInt(((IntEncodedValue)encodedValue).getValue());
            break;
        case ValueType.LONG:
            writer.writeLong(((LongEncodedValue)encodedValue).getValue());
            break;
        case ValueType.METHOD:
            writer.writeMethod(((BuilderMethodEncodedValue)encodedValue).methodReference);
            break;
        case ValueType.NULL:
            writer.writeNull();
            break;
        case ValueType.SHORT:
            writer.writeShort(((ShortEncodedValue)encodedValue).getValue());
            break;
        case ValueType.STRING:
            writer.writeString(((BuilderStringEncodedValue)encodedValue).stringReference);
            break;
        case ValueType.TYPE:
            writer.writeType(((BuilderTypeEncodedValue)encodedValue).typeReference);
            break;
        default:
            throw new ExceptionWithContext("Unrecognized value type: %d", encodedValue.getValueType());
    }
}
 
开发者ID:AndreJCL,项目名称:JCL,代码行数:57,代码来源:DexBuilder.java


注:本文中的org.jf.dexlib2.ValueType.TYPE属性示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。