public CodegenExpression codegenEvaluateEventGetROCollectionScalar(CodegenExpression event, CodegenExpression evalctx, CodegenMethodScope codegenMethodScope, CodegenClassScope codegenClassScope) { CodegenMethod method = codegenMethodScope.makeChild(Collection.class, PropertyDotScalarArrayForge.class, codegenClassScope).addParam(EventBean.class, "event").addParam(ExprEvaluatorContext.class, "context").getBlock() .ifRefNullReturnNull("event") .methodReturn(codegenEvaluateGetInternal(ref("event"), codegenMethodScope, codegenClassScope)); return localMethodBuild(method).pass(event).pass(evalctx).call(); }
public static CodegenLocalMethodBuilder localMethodBuild(CodegenMethod methodNode) { return new CodegenLocalMethodBuilder(methodNode); }
public CodegenExpression calendarSetCodegen(CodegenExpression startLong, CodegenExpression cal, CodegenMethodScope codegenMethodScope, CodegenClassScope codegenClassScope) { return localMethodBuild(codegenMethodScope.makeChild(long.class, TimeAbacusMilliseconds.class, codegenClassScope).addParam(long.class, "fromTime").addParam(Calendar.class, "cal").getBlock() .expression(exprDotMethod(ref("cal"), "setTimeInMillis", ref("fromTime"))) .methodReturn(constant(0))).pass(startLong).pass(cal).call(); }
private CodegenExpression codegenEvaluateInternal(CodegenExpression event, CodegenClassScope codegenClassScope, CodegenMethodScope codegenMethodScope) { CodegenMethod method = codegenMethodScope.makeChild(Collection.class, PropertyDotScalarCollection.class, codegenClassScope).addParam(EventBean.class, "event").getBlock() .methodReturn(CodegenLegoCast.castSafeFromObjectType(Collection.class, getter.eventBeanGetCodegen(ref("event"), codegenMethodScope, codegenClassScope))); return localMethodBuild(method).pass(event).call(); } }
public CodegenExpression codegen(CodegenExpression inner, Class innerType, CodegenMethodScope codegenMethodScope, ExprForgeCodegenSymbol exprSymbol, CodegenClassScope codegenClassScope) { CodegenMethod method = codegenMethodScope.makeChild(Integer.class, ExprDotForgeArraySize.class, codegenClassScope).addParam(innerType, "target").getBlock() .ifRefNullReturnNull("target") .methodReturn(arrayLength(ref("target"))); return localMethodBuild(method).pass(inner).call(); } }
protected static CodegenExpression codegenWidenArrayAsListMayNull(CodegenExpression expression, Class arrayType, CodegenMethodScope codegenMethodScope, Class generator, CodegenClassScope codegenClassScope) { CodegenMethod method = codegenMethodScope.makeChild(Collection.class, generator, codegenClassScope).addParam(Object.class, "input").getBlock() .ifRefNullReturnNull("input") .methodReturn(staticMethod(Arrays.class, "asList", cast(arrayType, ref("input")))); return localMethodBuild(method).pass(expression).call(); } }
public CodegenExpression widenCodegen(CodegenExpression expression, CodegenMethodScope codegenMethodScope, CodegenClassScope codegenClassScope) { CodegenMethod method = codegenMethodScope.makeChild(ByteBuffer.class, TypeWidenerByteArrayToByteBufferCoercer.class, codegenClassScope).addParam(Object.class, "input").getBlock() .ifRefNullReturnNull("input") .methodReturn(staticMethod(ByteBuffer.class, "wrap", cast(byte[].class, ref("input")))); return localMethodBuild(method).pass(expression).call(); } }
public CodegenExpression codegen(CodegenMethodScope codegenMethodScope, CodegenClassScope codegenClassScope, CodegenExpressionRef left, CodegenExpressionRef right, Class ltype, Class rtype) { CodegenMethod method = codegenMethodScope.makeChild(BigDecimal.class, SubtractBigDecConvComputer.class, codegenClassScope).addParam(ltype, "d1").addParam(rtype, "d2").getBlock() .declareVar(BigDecimal.class, "s1", convOne.coerceBoxedBigDecCodegen(ref("d1"), ltype)) .declareVar(BigDecimal.class, "s2", convTwo.coerceBoxedBigDecCodegen(ref("d2"), rtype)) .methodReturn(exprDotMethod(ref("s1"), "subtract", ref("s2"))); return localMethodBuild(method).pass(left).pass(right).call(); } }
public CodegenExpression codegenDate(CodegenExpression inner, CodegenMethodScope codegenMethodScope, ExprForgeCodegenSymbol exprSymbol, CodegenClassScope codegenClassScope) { CodegenExpressionField formatField = codegenFormatFieldInit(codegenClassScope); CodegenBlock blockMethod = codegenMethodScope.makeChild(String.class, ReformatFormatForge.class, codegenClassScope).addParam(Date.class, "d").getBlock() .synchronizedOn(formatField) .blockReturn(exprDotMethod(formatField, "format", ref("d"))); return localMethodBuild(blockMethod.methodEnd()).pass(inner).call(); }
public static CodegenExpression applyWidenersCodegenMultirow(CodegenExpressionRef rows, TypeWidenerSPI[] wideners, CodegenMethodScope codegenMethodScope, CodegenClassScope codegenClassScope) { CodegenMethod method = codegenMethodScope.makeChild(void.class, SelectExprProcessorHelper.class, codegenClassScope).addParam(Object[][].class, "rows").getBlock() .forEach(Object[].class, "row", rows) .expression(applyWidenersCodegen(ref("row"), wideners, codegenMethodScope, codegenClassScope)) .blockEnd() .methodEnd(); return localMethodBuild(method).pass(rows).call(); }
public CodegenExpression codegen(CodegenMethodScope codegenMethodScope, CodegenClassScope codegenClassScope, CodegenExpressionRef left, CodegenExpressionRef right, Class ltype, Class rtype) { CodegenMethod method = codegenMethodScope.makeChild(BigDecimal.class, MultiplyBigDecConvComputer.class, codegenClassScope).addParam(ltype, "d1").addParam(rtype, "d2").getBlock() .declareVar(BigDecimal.class, "s1", convOne.coerceBoxedBigDecCodegen(ref("d1"), ltype)) .declareVar(BigDecimal.class, "s2", convTwo.coerceBoxedBigDecCodegen(ref("d2"), rtype)) .methodReturn(exprDotMethod(ref("s1"), "multiply", ref("s2"))); return localMethodBuild(method).pass(left).pass(right).call(); } }
public CodegenExpression eventBeanGetMappedCodegen(CodegenMethodScope codegenMethodScope, CodegenClassScope codegenClassScope, CodegenExpression beanExpression, CodegenExpression key) { CodegenMethod method = codegenMethodScope.makeChild(Object.class, WrapperGetterMapped.class, codegenClassScope).addParam(EventBean.class, "event").addParam(String.class, "key").getBlock() .declareVar(DecoratingEventBean.class, "wrapper", cast(DecoratingEventBean.class, ref("event"))) .declareVar(EventBean.class, "wrapped", exprDotMethod(ref("wrapper"), "getUnderlyingEvent")) .ifRefNullReturnNull("wrapped") .methodReturn(undMapped.eventBeanGetMappedCodegen(codegenMethodScope, codegenClassScope, ref("wrapped"), ref("key"))); return localMethodBuild(method).pass(beanExpression).pass(key).call(); } };
public CodegenExpression eventBeanGetIndexedCodegen(CodegenMethodScope codegenMethodScope, CodegenClassScope codegenClassScope, CodegenExpression beanExpression, CodegenExpression key) { CodegenMethod method = codegenMethodScope.makeChild(Object.class, WrapperGetterIndexed.class, codegenClassScope).addParam(EventBean.class, "event").addParam(int.class, "index").getBlock() .declareVar(DecoratingEventBean.class, "wrapper", cast(DecoratingEventBean.class, ref("event"))) .declareVar(EventBean.class, "wrapped", exprDotMethod(ref("wrapper"), "getUnderlyingEvent")) .ifRefNullReturnNull("wrapped") .methodReturn(undIndexed.eventBeanGetIndexedCodegen(codegenMethodScope, codegenClassScope, ref("wrapped"), ref("index"))); return localMethodBuild(method).pass(beanExpression).pass(key).call(); } }
public CodegenExpression codegenCal(CodegenExpression inner, CodegenMethodScope codegenMethodScope, ExprForgeCodegenSymbol exprSymbol, CodegenClassScope codegenClassScope) { CodegenExpressionField formatField = codegenFormatFieldInit(codegenClassScope); CodegenBlock blockMethod = codegenMethodScope.makeChild(String.class, ReformatFormatForge.class, codegenClassScope).addParam(Calendar.class, "cal").getBlock() .synchronizedOn(formatField) .blockReturn(exprDotMethod(formatField, "format", exprDotMethod(ref("cal"), "getTime"))); return localMethodBuild(blockMethod.methodEnd()).pass(inner).call(); }
public static CodegenExpression applyWidenersCodegen(CodegenExpressionRef row, TypeWidenerSPI[] wideners, CodegenMethodScope codegenMethodScope, CodegenClassScope codegenClassScope) { CodegenBlock block = codegenMethodScope.makeChild(void.class, SelectExprProcessorHelper.class, codegenClassScope).addParam(Object[].class, "row").getBlock(); for (int i = 0; i < wideners.length; i++) { if (wideners[i] != null) { block.assignArrayElement("row", constant(i), wideners[i].widenCodegen(arrayAtIndex(ref("row"), constant(i)), codegenMethodScope, codegenClassScope)); } } return localMethodBuild(block.methodEnd()).pass(row).call(); }
public CodegenExpression eventBeanGetMappedCodegen(CodegenMethodScope codegenMethodScope, CodegenClassScope codegenClassScope, CodegenExpression beanExpression, CodegenExpression key) { CodegenMethod method = codegenMethodScope.makeChild(Object.class, AvroEventBeanGetterMappedRuntimeKeyed.class, codegenClassScope).addParam(EventBean.class, "event").addParam(String.class, "key").getBlock() .declareVar(GenericData.Record.class, "record", castUnderlying(GenericData.Record.class, ref("event"))) .declareVar(Map.class, "values", cast(Map.class, exprDotMethod(ref("record"), "get", constant(pos)))) .methodReturn(staticMethod(AvroEventBeanGetterMapped.class, "getAvroMappedValueWNullCheck", ref("values"), ref("key"))); return localMethodBuild(method).pass(beanExpression).pass(key).call(); } }
public CodegenExpression eventBeanGetIndexedCodegen(CodegenMethodScope codegenMethodScope, CodegenClassScope codegenClassScope, CodegenExpression beanExpression, CodegenExpression key) { CodegenMethod method = codegenMethodScope.makeChild(Object.class, AvroEventBeanGetterIndexedRuntimeKeyed.class, codegenClassScope).addParam(EventBean.class, "event").addParam(int.class, "index").getBlock() .declareVar(GenericData.Record.class, "record", castUnderlying(GenericData.Record.class, ref("event"))) .declareVar(Collection.class, "values", cast(Collection.class, exprDotMethod(ref("record"), "get", constant(pos)))) .methodReturn(staticMethod(AvroEventBeanGetterIndexed.class, "getAvroIndexedValue", ref("values"), ref("index"))); return localMethodBuild(method).pass(beanExpression).pass(key).call(); } }
public CodegenExpression widenCodegen(CodegenExpression expression, CodegenMethodScope codegenMethodScope, CodegenClassScope codegenClassScope) { CodegenMethod method = codegenMethodScope.makeChild(Object.class, TypeWidenerSPI.class, codegenClassScope).addParam(Object.class, "input").getBlock() .ifCondition(instanceOf(ref("input"), EventBean.class)) .blockReturn(exprDotMethod(cast(EventBean.class, ref("input")), "getUnderlying")) .methodReturn(ref("input")); return localMethodBuild(method).pass(expression).call(); } };
public CodegenExpression calendarSetCodegen(CodegenExpression startLong, CodegenExpression cal, CodegenMethodScope codegenMethodScope, CodegenClassScope codegenClassScope) { CodegenMethod method = codegenMethodScope.makeChild(long.class, TimeAbacusMicroseconds.class, codegenClassScope).addParam(long.class, "fromTime").addParam(Calendar.class, "cal").getBlock() .declareVar(long.class, "millis", op(ref("fromTime"), "/", constant(1000))) .expression(exprDotMethod(ref("cal"), "setTimeInMillis", ref("millis"))) .methodReturn(op(ref("fromTime"), "-", op(ref("millis"), "*", constant(1000)))); return localMethodBuild(method).pass(startLong).pass(cal).call(); }
private CodegenExpression codegenEvaluateGetInternal(CodegenExpression event, CodegenMethodScope codegenMethodScope, CodegenClassScope codegenClassScope) { CodegenBlock block = codegenMethodScope.makeChild(Collection.class, PropertyDotScalarArrayForge.class, codegenClassScope).addParam(EventBean.class, "event").getBlock() .declareVar(getterReturnType, "value", CodegenLegoCast.castSafeFromObjectType(getterReturnType, getter.eventBeanGetCodegen(ref("event"), codegenMethodScope, codegenClassScope))) .ifRefNullReturnNull("value"); CodegenMethod method; if (componentType.isPrimitive()) { method = block.methodReturn(newInstance(ArrayWrappingCollection.class, ref("value"))); } else { method = block.methodReturn(staticMethod(Arrays.class, "asList", ref("value"))); } return localMethodBuild(method).pass(event).call(); } }