private void addClassAnnotations() { if (classAnnotations != null && !classAnnotations.isEmpty()) { for (Map.Entry<Class,Map<String,Object>> entry : classAnnotations.entrySet()) { Class annoType = entry.getKey(); Map<String,Object> fields = entry.getValue(); AnnotationVisitor av = cw.visitAnnotation(ci(annoType), true); CodegenUtils.visitAnnotationFields(av, fields); av.visitEnd(); } } }
private void addClassAnnotations() { if (classAnnotations != null && !classAnnotations.isEmpty()) { for (Map.Entry<Class,Map<String,Object>> entry : classAnnotations.entrySet()) { Class annoType = entry.getKey(); Map<String,Object> fields = entry.getValue(); AnnotationVisitor av = cw.visitAnnotation(ci(annoType), true); CodegenUtils.visitAnnotationFields(av, fields); av.visitEnd(); } } }
cw.visitAnnotation(p(Generated.class), true);
cw.visitAnnotation(p(Generated.class), true);
private static ClassWriter createJavaMethodCtor(String namePath, String sup, String parameterDesc) { ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS | ClassWriter.COMPUTE_FRAMES); String sourceFile = namePath.substring(namePath.lastIndexOf('/') + 1) + ".gen"; cw.visit(RubyInstanceConfig.JAVA_VERSION, ACC_PUBLIC + ACC_SUPER, namePath, null, sup, null); cw.visitSource(sourceFile, null); AnnotationVisitor av = cw.visitAnnotation(ci(DynamicMethod.Version.class), true); av.visit("version", 0); av.visitEnd(); SkinnyMethodAdapter mv = new SkinnyMethodAdapter(cw, ACC_PUBLIC, "<init>", JAVA_SUPER_SIG, null, null); mv.start(); mv.aloadMany(0, 1, 2, 3); mv.invokespecial(sup, "<init>", JAVA_SUPER_SIG); mv.aload(0); mv.ldc(parameterDesc.toString()); mv.invokevirtual(p(JavaMethod.class), "setParameterDesc", sig(void.class, String.class)); mv.voidreturn(); mv.end(); return cw; }
private static ClassWriter createJavaMethodCtor(String namePath, String sup, String parameterDesc) { ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS | ClassWriter.COMPUTE_FRAMES); String sourceFile = namePath.substring(namePath.lastIndexOf('/') + 1) + ".gen"; cw.visit(RubyInstanceConfig.JAVA_VERSION, ACC_PUBLIC + ACC_SUPER, namePath, null, sup, null); cw.visitSource(sourceFile, null); AnnotationVisitor av = cw.visitAnnotation(ci(DynamicMethod.Version.class), true); av.visit("version", 0); av.visitEnd(); SkinnyMethodAdapter mv = new SkinnyMethodAdapter(cw, ACC_PUBLIC, "<init>", JAVA_SUPER_SIG, null, null); mv.start(); mv.aloadMany(0, 1, 2, 3); mv.invokespecial(sup, "<init>", JAVA_SUPER_SIG); mv.aload(0); mv.ldc(parameterDesc.toString()); mv.invokevirtual(p(JavaMethod.class), "setParameterDesc", sig(void.class, String.class)); mv.voidreturn(); mv.end(); return cw; }
Map<String,Object> fields = entry.getValue(); AnnotationVisitor av = cw.visitAnnotation(ci(annoType), true); CodegenUtils.visitAnnotationFields(av, fields); av.visitEnd();
Map<String,Object> fields = entry.getValue(); AnnotationVisitor av = cw.visitAnnotation(ci(annoType), true); CodegenUtils.visitAnnotationFields(av, fields); av.visitEnd();