Package org.jf.dexlib2.writer.builder
Class DexBuilder
- java.lang.Object
-
- org.jf.dexlib2.writer.DexWriter<BuilderStringReference,BuilderStringReference,BuilderTypeReference,BuilderTypeReference,BuilderMethodProtoReference,BuilderFieldReference,BuilderMethodReference,BuilderClassDef,BuilderCallSiteReference,BuilderMethodHandleReference,org.jf.dexlib2.writer.builder.BuilderAnnotation,BuilderAnnotationSet,BuilderTypeList,BuilderField,BuilderMethod,BuilderEncodedValues.BuilderArrayEncodedValue,BuilderEncodedValues.BuilderEncodedValue,BuilderAnnotationElement,org.jf.dexlib2.writer.builder.BuilderStringPool,org.jf.dexlib2.writer.builder.BuilderTypePool,org.jf.dexlib2.writer.builder.BuilderProtoPool,BuilderFieldPool,org.jf.dexlib2.writer.builder.BuilderMethodPool,BuilderClassPool,BuilderCallSitePool,BuilderMethodHandlePool,org.jf.dexlib2.writer.builder.BuilderTypeListPool,org.jf.dexlib2.writer.builder.BuilderAnnotationPool,org.jf.dexlib2.writer.builder.BuilderAnnotationSetPool,BuilderEncodedArrayPool>
-
- org.jf.dexlib2.writer.builder.DexBuilder
-
public class DexBuilder extends DexWriter<BuilderStringReference,BuilderStringReference,BuilderTypeReference,BuilderTypeReference,BuilderMethodProtoReference,BuilderFieldReference,BuilderMethodReference,BuilderClassDef,BuilderCallSiteReference,BuilderMethodHandleReference,org.jf.dexlib2.writer.builder.BuilderAnnotation,BuilderAnnotationSet,BuilderTypeList,BuilderField,BuilderMethod,BuilderEncodedValues.BuilderArrayEncodedValue,BuilderEncodedValues.BuilderEncodedValue,BuilderAnnotationElement,org.jf.dexlib2.writer.builder.BuilderStringPool,org.jf.dexlib2.writer.builder.BuilderTypePool,org.jf.dexlib2.writer.builder.BuilderProtoPool,BuilderFieldPool,org.jf.dexlib2.writer.builder.BuilderMethodPool,BuilderClassPool,BuilderCallSitePool,BuilderMethodHandlePool,org.jf.dexlib2.writer.builder.BuilderTypeListPool,org.jf.dexlib2.writer.builder.BuilderAnnotationPool,org.jf.dexlib2.writer.builder.BuilderAnnotationSetPool,BuilderEncodedArrayPool>
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
DexBuilder.DexBuilderSectionProvider
-
Nested classes/interfaces inherited from class org.jf.dexlib2.writer.DexWriter
DexWriter.InternalEncodedValueWriter, DexWriter.SectionProvider
-
-
Field Summary
-
Fields inherited from class org.jf.dexlib2.writer.DexWriter
annotationDirectorySectionOffset, annotationSection, annotationSectionOffset, annotationSetRefSectionOffset, annotationSetSection, annotationSetSectionOffset, callSiteSection, callSiteSectionOffset, classDataSectionOffset, classIndexSectionOffset, classSection, codeSectionOffset, debugSectionOffset, encodedArraySection, encodedArraySectionOffset, fieldSection, fieldSectionOffset, hasHiddenApiRestrictions, hiddenApiRestrictionsOffset, mapSectionOffset, MAX_POOL_SIZE, methodHandleSection, methodHandleSectionOffset, methodSection, methodSectionOffset, NO_INDEX, NO_OFFSET, numAnnotationDirectoryItems, numAnnotationSetRefItems, numClassDataItems, numCodeItemItems, numDebugInfoItems, opcodes, protoSection, protoSectionOffset, stringDataSectionOffset, stringIndexSectionOffset, stringSection, typeListSection, typeListSectionOffset, typeSection, typeSectionOffset
-
-
Constructor Summary
Constructors Constructor Description DexBuilder(Opcodes opcodes)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected DexWriter.SectionProvider
getSectionProvider()
BuilderCallSiteReference
internCallSite(CallSiteReference callSiteReference)
BuilderClassDef
internClassDef(java.lang.String type, int accessFlags, java.lang.String superclass, java.util.List<java.lang.String> interfaces, java.lang.String sourceFile, java.util.Set<? extends Annotation> annotations, java.lang.Iterable<? extends BuilderField> fields, java.lang.Iterable<? extends BuilderMethod> methods)
BuilderField
internField(java.lang.String definingClass, java.lang.String name, java.lang.String type, int accessFlags, EncodedValue initialValue, java.util.Set<? extends Annotation> annotations, java.util.Set<HiddenApiRestriction> hiddenApiRestrictions)
BuilderFieldReference
internFieldReference(FieldReference field)
BuilderMethod
internMethod(java.lang.String definingClass, java.lang.String name, java.util.List<? extends MethodParameter> parameters, java.lang.String returnType, int accessFlags, java.util.Set<? extends Annotation> annotations, java.util.Set<HiddenApiRestriction> hiddenApiRestrictions, MethodImplementation methodImplementation)
BuilderMethodHandleReference
internMethodHandle(MethodHandleReference methodHandleReference)
BuilderMethodProtoReference
internMethodProtoReference(MethodProtoReference methodProto)
BuilderMethodReference
internMethodReference(MethodReference method)
BuilderStringReference
internNullableStringReference(java.lang.String string)
BuilderTypeReference
internNullableTypeReference(java.lang.String type)
BuilderReference
internReference(Reference reference)
BuilderStringReference
internStringReference(java.lang.String string)
BuilderTypeReference
internTypeReference(java.lang.String type)
protected void
writeEncodedValue(DexWriter.InternalEncodedValueWriter writer, BuilderEncodedValues.BuilderEncodedValue encodedValue)
-
Methods inherited from class org.jf.dexlib2.writer.DexWriter
getFieldReferences, getMethodReferences, getTypeReferences, hasOverflowed, hasOverflowed, writeTo, writeTo
-
-
-
-
Constructor Detail
-
DexBuilder
public DexBuilder(@Nonnull Opcodes opcodes)
-
-
Method Detail
-
getSectionProvider
@Nonnull protected DexWriter.SectionProvider getSectionProvider()
- Specified by:
getSectionProvider
in classDexWriter<BuilderStringReference,BuilderStringReference,BuilderTypeReference,BuilderTypeReference,BuilderMethodProtoReference,BuilderFieldReference,BuilderMethodReference,BuilderClassDef,BuilderCallSiteReference,BuilderMethodHandleReference,org.jf.dexlib2.writer.builder.BuilderAnnotation,BuilderAnnotationSet,BuilderTypeList,BuilderField,BuilderMethod,BuilderEncodedValues.BuilderArrayEncodedValue,BuilderEncodedValues.BuilderEncodedValue,BuilderAnnotationElement,org.jf.dexlib2.writer.builder.BuilderStringPool,org.jf.dexlib2.writer.builder.BuilderTypePool,org.jf.dexlib2.writer.builder.BuilderProtoPool,BuilderFieldPool,org.jf.dexlib2.writer.builder.BuilderMethodPool,BuilderClassPool,BuilderCallSitePool,BuilderMethodHandlePool,org.jf.dexlib2.writer.builder.BuilderTypeListPool,org.jf.dexlib2.writer.builder.BuilderAnnotationPool,org.jf.dexlib2.writer.builder.BuilderAnnotationSetPool,BuilderEncodedArrayPool>
-
internField
@Nonnull public BuilderField internField(@Nonnull java.lang.String definingClass, @Nonnull java.lang.String name, @Nonnull java.lang.String type, int accessFlags, @Nullable EncodedValue initialValue, @Nonnull java.util.Set<? extends Annotation> annotations, @Nonnull java.util.Set<HiddenApiRestriction> hiddenApiRestrictions)
-
internMethod
@Nonnull public BuilderMethod internMethod(@Nonnull java.lang.String definingClass, @Nonnull java.lang.String name, @Nullable java.util.List<? extends MethodParameter> parameters, @Nonnull java.lang.String returnType, int accessFlags, @Nonnull java.util.Set<? extends Annotation> annotations, @Nonnull java.util.Set<HiddenApiRestriction> hiddenApiRestrictions, @Nullable MethodImplementation methodImplementation)
-
internClassDef
@Nonnull public BuilderClassDef internClassDef(@Nonnull java.lang.String type, int accessFlags, @Nullable java.lang.String superclass, @Nullable java.util.List<java.lang.String> interfaces, @Nullable java.lang.String sourceFile, @Nonnull java.util.Set<? extends Annotation> annotations, @Nullable java.lang.Iterable<? extends BuilderField> fields, @Nullable java.lang.Iterable<? extends BuilderMethod> methods)
-
internCallSite
public BuilderCallSiteReference internCallSite(@Nonnull CallSiteReference callSiteReference)
-
internMethodHandle
public BuilderMethodHandleReference internMethodHandle(@Nonnull MethodHandleReference methodHandleReference)
-
internStringReference
@Nonnull public BuilderStringReference internStringReference(@Nonnull java.lang.String string)
-
internNullableStringReference
@Nullable public BuilderStringReference internNullableStringReference(@Nullable java.lang.String string)
-
internTypeReference
@Nonnull public BuilderTypeReference internTypeReference(@Nonnull java.lang.String type)
-
internNullableTypeReference
@Nullable public BuilderTypeReference internNullableTypeReference(@Nullable java.lang.String type)
-
internFieldReference
@Nonnull public BuilderFieldReference internFieldReference(@Nonnull FieldReference field)
-
internMethodReference
@Nonnull public BuilderMethodReference internMethodReference(@Nonnull MethodReference method)
-
internMethodProtoReference
@Nonnull public BuilderMethodProtoReference internMethodProtoReference(@Nonnull MethodProtoReference methodProto)
-
internReference
@Nonnull public BuilderReference internReference(@Nonnull Reference reference)
-
writeEncodedValue
protected void writeEncodedValue(@Nonnull DexWriter.InternalEncodedValueWriter writer, @Nonnull BuilderEncodedValues.BuilderEncodedValue encodedValue) throws java.io.IOException
- Specified by:
writeEncodedValue
in classDexWriter<BuilderStringReference,BuilderStringReference,BuilderTypeReference,BuilderTypeReference,BuilderMethodProtoReference,BuilderFieldReference,BuilderMethodReference,BuilderClassDef,BuilderCallSiteReference,BuilderMethodHandleReference,org.jf.dexlib2.writer.builder.BuilderAnnotation,BuilderAnnotationSet,BuilderTypeList,BuilderField,BuilderMethod,BuilderEncodedValues.BuilderArrayEncodedValue,BuilderEncodedValues.BuilderEncodedValue,BuilderAnnotationElement,org.jf.dexlib2.writer.builder.BuilderStringPool,org.jf.dexlib2.writer.builder.BuilderTypePool,org.jf.dexlib2.writer.builder.BuilderProtoPool,BuilderFieldPool,org.jf.dexlib2.writer.builder.BuilderMethodPool,BuilderClassPool,BuilderCallSitePool,BuilderMethodHandlePool,org.jf.dexlib2.writer.builder.BuilderTypeListPool,org.jf.dexlib2.writer.builder.BuilderAnnotationPool,org.jf.dexlib2.writer.builder.BuilderAnnotationSetPool,BuilderEncodedArrayPool>
- Throws:
java.io.IOException
-
-