Provides an implementation for optional class, field and method attributes.

By default ASM strips optional attributes, in order to keep them in the bytecode that is being readed you should pass an array of required attribute instances to {@link com.ziotic.asm.ClassReader#accepcom.ziotic.asmsm.ClassVisitor, com.ziotic.asm.Attribute[], boolean) ClassReader.accept()} method. In order to add custom attributes to the manually constructed bytecode concrete subclasses of the {@lcom.ziotic.asm.asm.Attribute Attribute} can be passed to the visitAttribute methods of the {@lincom.ziotic.asmsm.ClassVisitor ClassVisitor}, com.ziotic.asmtweb.asm.FieldVisitor FieldVisitor} and {@lincom.ziotic.asmsm.MethodVisitor MethodVisitor} interfaces. @since ASM 1.4.1