Class Segment
- java.lang.Object
-
- org.objectweb.asm.ClassVisitor
-
- org.apache.commons.compress.harmony.pack200.Segment
-
public class Segment extends org.objectweb.asm.ClassVisitor
A Pack200 archive consists of one or more Segments.Format:
pack200_archive: (pack200_segment)+ pack200_segment: segment_header *band_headers :BYTE1 cp_bands attr_definition_bands ic_bands class_bands bc_bands file_bands
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description classSegment.ArrayVisitorstatic classSegment.PassExceptionException indicating that the class currently being visited contains an unknown attribute, which means that by default the class file needs to be passed through as-is in the file_bands rather than being packed with pack200.classSegment.SegmentAnnotationVisitorSegmentAnnotationVisitor implementsAnnotationVisitorto visit Annotations found in a class file.classSegment.SegmentFieldVisitorSegmentFieldVisitor implementsFieldVisitorto visit the metadata relating to fields in a class file.classSegment.SegmentMethodVisitorThis class implements MethodVisitor to visit the contents and metadata related to methods in a class file.
-
Field Summary
Fields Modifier and Type Field Description static intASM_APISee https://asm.ow2.io/Javadoc/org/objectweb/asm/Opcodes.html#ASM4
-
Constructor Summary
Constructors Constructor Description Segment()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description AttributeDefinitionBandsgetAttrBands()ClassBandsgetClassBands()CpBandsgetCpBands()Pack200ClassReadergetCurrentClassReader()IcBandsgetIcBands()SegmentHeadergetSegmentHeader()booleanlastConstantHadWideIndex()voidpack(org.apache.commons.compress.harmony.pack200.Archive.SegmentUnit segmentUnit, java.io.OutputStream out, PackingOptions options)The main method on Segment.voidvisit(int version, int access, java.lang.String name, java.lang.String signature, java.lang.String superName, java.lang.String[] interfaces)org.objectweb.asm.AnnotationVisitorvisitAnnotation(java.lang.String desc, boolean visible)voidvisitAttribute(org.objectweb.asm.Attribute attribute)voidvisitEnd()org.objectweb.asm.FieldVisitorvisitField(int flags, java.lang.String name, java.lang.String desc, java.lang.String signature, java.lang.Object value)voidvisitInnerClass(java.lang.String name, java.lang.String outerName, java.lang.String innerName, int flags)org.objectweb.asm.MethodVisitorvisitMethod(int flags, java.lang.String name, java.lang.String desc, java.lang.String signature, java.lang.String[] exceptions)voidvisitOuterClass(java.lang.String owner, java.lang.String name, java.lang.String desc)voidvisitSource(java.lang.String source, java.lang.String debug)
-
-
-
Field Detail
-
ASM_API
public static int ASM_API
See https://asm.ow2.io/Javadoc/org/objectweb/asm/Opcodes.html#ASM4
-
-
Constructor Detail
-
Segment
public Segment()
-
-
Method Detail
-
getAttrBands
public AttributeDefinitionBands getAttrBands()
-
getClassBands
public ClassBands getClassBands()
-
getCpBands
public CpBands getCpBands()
-
getCurrentClassReader
public Pack200ClassReader getCurrentClassReader()
-
getIcBands
public IcBands getIcBands()
-
getSegmentHeader
public SegmentHeader getSegmentHeader()
-
lastConstantHadWideIndex
public boolean lastConstantHadWideIndex()
-
pack
public void pack(org.apache.commons.compress.harmony.pack200.Archive.SegmentUnit segmentUnit, java.io.OutputStream out, PackingOptions options) throws java.io.IOException, Pack200Exception
The main method on Segment. Reads in all the class files, packs them and then writes the packed segment out to the given OutputStream.- Parameters:
segmentUnit- TODOout- the OutputStream to write the packed Segment to.options- packing options.- Throws:
java.io.IOException- If an I/O error occurs.Pack200Exception- If a Pack200 semantic error occurs.
-
visit
public void visit(int version, int access, java.lang.String name, java.lang.String signature, java.lang.String superName, java.lang.String[] interfaces)
- Overrides:
visitin classorg.objectweb.asm.ClassVisitor
-
visitAnnotation
public org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String desc, boolean visible)
- Overrides:
visitAnnotationin classorg.objectweb.asm.ClassVisitor
-
visitAttribute
public void visitAttribute(org.objectweb.asm.Attribute attribute)
- Overrides:
visitAttributein classorg.objectweb.asm.ClassVisitor
-
visitEnd
public void visitEnd()
- Overrides:
visitEndin classorg.objectweb.asm.ClassVisitor
-
visitField
public org.objectweb.asm.FieldVisitor visitField(int flags, java.lang.String name, java.lang.String desc, java.lang.String signature, java.lang.Object value)
- Overrides:
visitFieldin classorg.objectweb.asm.ClassVisitor
-
visitInnerClass
public void visitInnerClass(java.lang.String name, java.lang.String outerName, java.lang.String innerName, int flags)
- Overrides:
visitInnerClassin classorg.objectweb.asm.ClassVisitor
-
visitMethod
public org.objectweb.asm.MethodVisitor visitMethod(int flags, java.lang.String name, java.lang.String desc, java.lang.String signature, java.lang.String[] exceptions)
- Overrides:
visitMethodin classorg.objectweb.asm.ClassVisitor
-
visitOuterClass
public void visitOuterClass(java.lang.String owner, java.lang.String name, java.lang.String desc)
- Overrides:
visitOuterClassin classorg.objectweb.asm.ClassVisitor
-
visitSource
public void visitSource(java.lang.String source, java.lang.String debug)
- Overrides:
visitSourcein classorg.objectweb.asm.ClassVisitor
-
-