private static <S> void appendGetters(Map<Parameter, Getter<? super S, ?>> injections, ClassWriter cw) { FieldVisitor fv; for(Entry<Parameter, Getter<? super S, ?>> entry : injections.entrySet()) { GetterCall getterCall = getGetterCall(entry.getKey().getType(), entry.getValue().getClass()); fv = cw.visitField(ACC_FINAL, "getter_" + entry.getKey().getName(), AsmUtils.toTargetTypeDeclaration(getterCall.getterType), null, null); fv.visitEnd(); } }
private static <S> void appendGetters(Map<Parameter, Getter<? super S, ?>> injections, ClassWriter cw) { FieldVisitor fv; for(Entry<Parameter, Getter<? super S, ?>> entry : injections.entrySet()) { GetterCall getterCall = getGetterCall(entry.getKey().getType(), entry.getValue().getClass()); fv = cw.visitField(ACC_FINAL, "getter_" + entry.getKey().getName(), AsmUtils.toTargetTypeDeclaration(getterCall.getterType), null, null); fv.visitEnd(); } }
private static <S> void appendInitGetters(Map<Parameter, Getter<? super S, ?>> injections, String classType, MethodVisitor mv) { for(Entry<Parameter, Getter<? super S, ?>> entry : injections.entrySet()) { String name = entry.getKey().getName(); GetterCall getterCall = getGetterCall(entry.getKey().getType(), entry.getValue().getClass()); mv.visitVarInsn(ALOAD, 0); mv.visitVarInsn(ALOAD, 1); mv.visitLdcInsn(name); mv.visitMethodInsn(INVOKEINTERFACE, "java/util/Map", "get", "(Ljava/lang/Object;)Ljava/lang/Object;", true); mv.visitTypeInsn(CHECKCAST, AsmUtils.toAsmType(getterCall.getterType)); mv.visitFieldInsn(PUTFIELD, classType, "getter_" + name, AsmUtils.toTargetTypeDeclaration(getterCall.getterType)); } }
private static <S> void appendInitGetters(Map<Parameter, Getter<? super S, ?>> injections, String classType, MethodVisitor mv) { for(Entry<Parameter, Getter<? super S, ?>> entry : injections.entrySet()) { String name = entry.getKey().getName(); GetterCall getterCall = getGetterCall(entry.getKey().getType(), entry.getValue().getClass()); mv.visitVarInsn(ALOAD, 0); mv.visitVarInsn(ALOAD, 1); mv.visitLdcInsn(name); mv.visitMethodInsn(INVOKEINTERFACE, "java/util/Map", "get", "(Ljava/lang/Object;)Ljava/lang/Object;", true); mv.visitTypeInsn(CHECKCAST, AsmUtils.toAsmType(getterCall.getterType)); mv.visitFieldInsn(PUTFIELD, classType, "getter_" + name, AsmUtils.toTargetTypeDeclaration(getterCall.getterType)); } }
final boolean checkIfNull = ignoreNullValues && !getGetterCall(parameterType, getter.getClass()).isPrimitive;
final boolean checkIfNull = ignoreNullValues && !getGetterCall(parameterType, getter.getClass()).isPrimitive;
private static <S> void invokeGetter(Parameter p, Getter<? super S, ?> getter, String classType, Class<?> sourceClass, MethodVisitor mv, Consumer<MethodVisitor> consumer, boolean ignoreNullValues) throws NoSuchMethodException { GetterCall getterCall = getGetterCall(p.getType(), getter.getClass());
private static <S> void invokeGetter(Parameter p, Getter<? super S, ?> getter, String classType, Class<?> sourceClass, MethodVisitor mv, Consumer<MethodVisitor> consumer, boolean ignoreNullValues) throws NoSuchMethodException { GetterCall getterCall = getGetterCall(p.getType(), getter.getClass());