switch (getAnnotationRetention(a)) { case SOURCE: break; final int attributeIndex = writeAttribute("RuntimeVisibleAnnotations"); writeAnnotation(a); endAttribute(attributeIndex); attributeCount++; final int attributeIndex = writeAttribute("RuntimeInvisibleAnnotations"); writeAnnotation(a); endAttribute(attributeIndex); attributeCount++;
private void endAttributes(final int index, final int count) { putChar(_dataBuffer, index - 2, count); }
private void endAttribute(final int index) { putInt(_dataBuffer, index - 4, _dataBuffer.getLength() - index); }
private int writeFlagAttributes(final long flags) { int count = 0; if ((flags & DEPRECATED) != 0) { endAttribute(writeAttribute("Deprecated")); count++; } if ((flags & ENUM) != 0) { endAttribute(writeAttribute("Enum")); count++; } if ((flags & SYNTHETIC) != 0) { endAttribute(writeAttribute("Synthetic")); count++; } if ((flags & BRIDGE) != 0) { endAttribute(writeAttribute("Bridge")); count++; } if ((flags & VARARGS) != 0) { endAttribute(writeAttribute("Varargs")); count++; } if ((flags & ANNOTATION) != 0) { endAttribute(writeAttribute("Annotation")); count++; } return count; }
private int writeInnerTypes() { final HashSet<Type<?>> innerTypeSet = _typeBuilder.constantPool.referencedInnerTypes; if (innerTypeSet.isEmpty()) { return 0; } final Type<?>[] innerTypes = innerTypeSet.toArray(new Type<?>[innerTypeSet.size()]); final int innerClassesStart = writeAttribute("InnerClasses"); _dataBuffer.putShort(innerTypes.length); for (final Type<?> type : innerTypes) { writeInnerTypeInfo(type); } endAttribute(innerClassesStart); return 1; }
writeFields(); writeMethods(); final int attributeCountIndex = beginAttributes(); int attributeCount = 0; final int attributeLengthIndex = writeAttribute("Signature"); endAttribute(attributeLengthIndex); attributeCount++; attributeCount += writeFlagAttributes(flags); attributeCount += writeJavaAnnotations(t.getCustomAnnotations()); attributeCount += writeEnclosingMethodAttribute(t); attributeCount += writeInnerTypes(); endAttributes(attributeCountIndex, attributeCount);
final int attributeCountIndex = beginAttributes(); final int attributeLengthIndex = writeAttribute("Code"); writeBody(method); endAttribute(attributeLengthIndex); attributeCount++; final int attributeLengthIndex = writeAttribute("Exceptions"); endAttribute(attributeLengthIndex); attributeCount++; final int attributeLengthIndex = writeAttribute("AnnotationDefault"); writeAttributeType(body); endAttribute(attributeLengthIndex); attributeCount++; attributeCount += writeMemberAttributes(method); attributeCount += writeParameterAttributes(method); endAttributes(attributeCountIndex, attributeCount);
final int attributeCountIndex = beginAttributes(); final List<LocalInfo> locals = getLocalInfo(method); final int localCount = locals.size(); final int attributeLengthIndex = writeAttribute("LocalVariableTable"); final Type<?> erasedType = erase(localType); if (needsLocalVariableTableEntry(localType)) { genericParameterCount++; endAttribute(attributeLengthIndex); attributeCount++; final int attributeLengthIndex = writeAttribute("LocalVariableTypeTable"); if (!needsLocalVariableTableEntry(local.type)) { continue; endAttribute(attributeLengthIndex); attributeCount++; endAttributes(attributeCountIndex, attributeCount);
final int attributeCountPosition = beginAttributes(); ); final int attributeLengthIndex = writeAttribute("ConstantValue"); endAttribute(attributeLengthIndex); attributeCount++; attributeCount += writeMemberAttributes(field); endAttributes(attributeCountPosition, attributeCount);
final ReadOnlyList<AnnotationBuilder<? extends Annotation>> annotations; int attributeCount = writeFlagAttributes(member.getModifiers()); final int attributeIndex = writeAttribute("Signature"); _dataBuffer.putShort(_typeBuilder.getUtf8StringToken(signature)); endAttribute(attributeIndex); attributeCount++; attributeCount += writeJavaAnnotations(annotations);
_dataBuffer.putShort(arrayLength); for (int i = 0; i < arrayLength; i++) { writeAttributeType(Array.get(value, i)); writeAnnotation((AnnotationBuilder<? extends Annotation>) value);
new ClassWriter(this).writeClass(outputStream);
writeFields(); writeMethods(); final int attributeCountIndex = beginAttributes(); int attributeCount = 0; final int attributeLengthIndex = writeAttribute("Signature"); endAttribute(attributeLengthIndex); attributeCount++; attributeCount += writeFlagAttributes(flags); attributeCount += writeJavaAnnotations(t.getCustomAnnotations()); attributeCount += writeEnclosingMethodAttribute(t); attributeCount += writeInnerTypes(); endAttributes(attributeCountIndex, attributeCount);
final int attributeCountIndex = beginAttributes(); final int attributeLengthIndex = writeAttribute("Code"); writeBody(method); endAttribute(attributeLengthIndex); attributeCount++; final int attributeLengthIndex = writeAttribute("Exceptions"); endAttribute(attributeLengthIndex); attributeCount++; final int attributeLengthIndex = writeAttribute("AnnotationDefault"); writeAttributeType(body); endAttribute(attributeLengthIndex); attributeCount++; attributeCount += writeMemberAttributes(method); attributeCount += writeParameterAttributes(method); endAttributes(attributeCountIndex, attributeCount);
final int attributeCountIndex = beginAttributes(); final List<LocalInfo> locals = getLocalInfo(method); final int localCount = locals.size(); final int attributeLengthIndex = writeAttribute("LocalVariableTable"); final Type<?> erasedType = erase(localType); if (needsLocalVariableTableEntry(localType)) { genericParameterCount++; endAttribute(attributeLengthIndex); attributeCount++; final int attributeLengthIndex = writeAttribute("LocalVariableTypeTable"); if (!needsLocalVariableTableEntry(local.type)) { continue; endAttribute(attributeLengthIndex); attributeCount++; endAttributes(attributeCountIndex, attributeCount);
final int attributeCountPosition = beginAttributes(); ); final int attributeLengthIndex = writeAttribute("ConstantValue"); endAttribute(attributeLengthIndex); attributeCount++; attributeCount += writeMemberAttributes(field); endAttributes(attributeCountPosition, attributeCount);
final ReadOnlyList<AnnotationBuilder<? extends Annotation>> annotations; int attributeCount = writeFlagAttributes(member.getModifiers()); final int attributeIndex = writeAttribute("Signature"); _dataBuffer.putShort(_typeBuilder.getUtf8StringToken(signature)); endAttribute(attributeIndex); attributeCount++; attributeCount += writeJavaAnnotations(annotations);
private int writeInnerTypes() { final HashSet<Type<?>> innerTypeSet = _typeBuilder.constantPool.referencedInnerTypes; if (innerTypeSet.isEmpty()) { return 0; } final Type<?>[] innerTypes = innerTypeSet.toArray(new Type<?>[innerTypeSet.size()]); final int innerClassesStart = writeAttribute("InnerClasses"); _dataBuffer.putShort(innerTypes.length); for (final Type<?> type : innerTypes) { writeInnerTypeInfo(type); } endAttribute(innerClassesStart); return 1; }
private int writeFlagAttributes(final long flags) { int count = 0; if ((flags & DEPRECATED) != 0) { endAttribute(writeAttribute("Deprecated")); count++; } if ((flags & ENUM) != 0) { endAttribute(writeAttribute("Enum")); count++; } if ((flags & SYNTHETIC) != 0) { endAttribute(writeAttribute("Synthetic")); count++; } if ((flags & BRIDGE) != 0) { endAttribute(writeAttribute("Bridge")); count++; } if ((flags & VARARGS) != 0) { endAttribute(writeAttribute("Varargs")); count++; } if ((flags & ANNOTATION) != 0) { endAttribute(writeAttribute("Annotation")); count++; } return count; }
_dataBuffer.putShort(arrayLength); for (int i = 0; i < arrayLength; i++) { writeAttributeType(Array.get(value, i)); writeAnnotation((AnnotationBuilder<? extends Annotation>) value);