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


Java TypeEncodedValue类代码示例

本文整理汇总了Java中org.jf.dexlib2.iface.value.TypeEncodedValue的典型用法代码示例。如果您正苦于以下问题:Java TypeEncodedValue类的具体用法?Java TypeEncodedValue怎么用?Java TypeEncodedValue使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


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

示例1: rewrite

import org.jf.dexlib2.iface.value.TypeEncodedValue; //导入依赖的package包/类
@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:niranjan94,项目名称:show-java,代码行数:21,代码来源:EncodedValueRewriter.java

示例2: getMethodAnnotaionPrepareClasses

import org.jf.dexlib2.iface.value.TypeEncodedValue; //导入依赖的package包/类
public static void getMethodAnnotaionPrepareClasses(DexDiffInfo dexDiffInfo, Set<String> prepareclasses){

        for (DexBackedMethod method:dexDiffInfo.getModifiedMethods()){
            Set<? extends Annotation>annotations = method.getAnnotations();
            if (annotations == null){
                continue;
            }
            for (Annotation annotation:annotations){
                String type = annotation.getType();
                if (type!= null&&type.startsWith("L")&&type.endsWith(";")){
                    prepareclasses.add(type.substring(1, type.length() - 1).replace('/', '.'));
                    System.out.println("prepare class: " + type);
                }
                Set<? extends AnnotationElement> elements = annotation.getElements();
                for (AnnotationElement dexBackedAnnotationElement:elements){
                    if (dexBackedAnnotationElement.getValue() instanceof DexBackedArrayEncodedValue){
                        List<? extends EncodedValue> values = ((DexBackedArrayEncodedValue) dexBackedAnnotationElement.getValue()).getValue();
                        for (EncodedValue encodedValue:values) {
                            if (encodedValue instanceof TypeEncodedValue) {
                                prepareclasses.add(((TypeEncodedValue) encodedValue).getValue().substring(1, ((TypeEncodedValue) encodedValue).getValue().length() - 1).replace('/', '.'));
                                System.out.println("prepare class: " + ((TypeEncodedValue) encodedValue).getValue());
                            }
                        }

                    }else if (dexBackedAnnotationElement.getValue() instanceof DexBackedTypeEncodedValue){
                        String value = ((DexBackedTypeEncodedValue) dexBackedAnnotationElement.getValue()).getValue();
                        prepareclasses.add(value.substring(1, value.length() - 1).replace('/', '.'));
                        System.out.println("prepare class: " + value);
                    }
                }
            }
        }

    }
 
开发者ID:alibaba,项目名称:atlas,代码行数:35,代码来源:ApkPatch.java

示例3: equals

import org.jf.dexlib2.iface.value.TypeEncodedValue; //导入依赖的package包/类
@Override
public boolean equals(@Nullable Object o) {
    if (o instanceof TypeEncodedValue) {
        return getValue().equals(((TypeEncodedValue)o).getValue());
    }
    return false;
}
 
开发者ID:CvvT,项目名称:andbg,代码行数:8,代码来源:BaseTypeEncodedValue.java

示例4: equals

import org.jf.dexlib2.iface.value.TypeEncodedValue; //导入依赖的package包/类
@Override
public boolean equals( Object o) {
    if (o instanceof TypeEncodedValue) {
        return getValue().equals(((TypeEncodedValue)o).getValue());
    }
    return false;
}
 
开发者ID:AndreJCL,项目名称:JCL,代码行数:8,代码来源:BaseTypeEncodedValue.java

示例5: of

import org.jf.dexlib2.iface.value.TypeEncodedValue; //导入依赖的package包/类
@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:niranjan94,项目名称:show-java,代码行数:41,代码来源:ImmutableEncodedValueFactory.java

示例6: equals

import org.jf.dexlib2.iface.value.TypeEncodedValue; //导入依赖的package包/类
@Override
public boolean equals(@Nullable Object o) {
    if (o instanceof TypeEncodedValue) {
        return getValue().equals(((TypeEncodedValue) o).getValue());
    }
    return false;
}
 
开发者ID:niranjan94,项目名称:show-java,代码行数:8,代码来源:BaseTypeEncodedValue.java

示例7: internEncodedValue

import org.jf.dexlib2.iface.value.TypeEncodedValue; //导入依赖的package包/类
@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:niranjan94,项目名称:show-java,代码行数:41,代码来源:BuilderContext.java

示例8: writeTo

import org.jf.dexlib2.iface.value.TypeEncodedValue; //导入依赖的package包/类
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,代码行数:70,代码来源:EncodedValueAdaptor.java

示例9: of

import org.jf.dexlib2.iface.value.TypeEncodedValue; //导入依赖的package包/类
public static ImmutableTypeEncodedValue of(@Nonnull TypeEncodedValue typeEncodedValue) {
    if (typeEncodedValue instanceof ImmutableTypeEncodedValue) {
        return (ImmutableTypeEncodedValue)typeEncodedValue;
    }
    return new ImmutableTypeEncodedValue(typeEncodedValue.getValue());
}
 
开发者ID:CvvT,项目名称:andbg,代码行数:7,代码来源:ImmutableTypeEncodedValue.java

示例10: compareTo

import org.jf.dexlib2.iface.value.TypeEncodedValue; //导入依赖的package包/类
@Override
public int compareTo(@Nonnull EncodedValue o) {
    int res = Ints.compare(getValueType(), o.getValueType());
    if (res != 0) return res;
    return getValue().compareTo(((TypeEncodedValue)o).getValue());
}
 
开发者ID:CvvT,项目名称:andbg,代码行数:7,代码来源:BaseTypeEncodedValue.java

示例11: of

import org.jf.dexlib2.iface.value.TypeEncodedValue; //导入依赖的package包/类
public static ImmutableTypeEncodedValue of( TypeEncodedValue typeEncodedValue) {
    if (typeEncodedValue instanceof ImmutableTypeEncodedValue) {
        return (ImmutableTypeEncodedValue)typeEncodedValue;
    }
    return new ImmutableTypeEncodedValue(typeEncodedValue.getValue());
}
 
开发者ID:AndreJCL,项目名称:JCL,代码行数:7,代码来源:ImmutableTypeEncodedValue.java

示例12: compareTo

import org.jf.dexlib2.iface.value.TypeEncodedValue; //导入依赖的package包/类
@Override
public int compareTo( EncodedValue o) {
    int res = Ints.compare(getValueType(), o.getValueType());
    if (res != 0) return res;
    return getValue().compareTo(((TypeEncodedValue)o).getValue());
}
 
开发者ID:AndreJCL,项目名称:JCL,代码行数:7,代码来源:BaseTypeEncodedValue.java

示例13: of

import org.jf.dexlib2.iface.value.TypeEncodedValue; //导入依赖的package包/类
public static ImmutableTypeEncodedValue of(@Nonnull TypeEncodedValue typeEncodedValue) {
    if (typeEncodedValue instanceof ImmutableTypeEncodedValue) {
        return (ImmutableTypeEncodedValue) typeEncodedValue;
    }
    return new ImmutableTypeEncodedValue(typeEncodedValue.getValue());
}
 
开发者ID:niranjan94,项目名称:show-java,代码行数:7,代码来源:ImmutableTypeEncodedValue.java

示例14: compareTo

import org.jf.dexlib2.iface.value.TypeEncodedValue; //导入依赖的package包/类
@Override
public int compareTo(@Nonnull EncodedValue o) {
    int res = Ints.compare(getValueType(), o.getValueType());
    if (res != 0) return res;
    return getValue().compareTo(((TypeEncodedValue) o).getValue());
}
 
开发者ID:niranjan94,项目名称:show-java,代码行数:7,代码来源:BaseTypeEncodedValue.java

示例15: writeEncodedValue

import org.jf.dexlib2.iface.value.TypeEncodedValue; //导入依赖的package包/类
@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:niranjan94,项目名称:show-java,代码行数:59,代码来源:DexPool.java


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