public Class getKnownEgressType() { return stmt.getKnownEgressType(); } }
public IndexedOperativeAssign(char[] expr, int start, int offset, int operation, int register, int fields, ParserContext pCtx) { super(pCtx); this.operation = operation; this.expr = expr; this.start = start; this.offset = offset; this.register = register; if ((fields & COMPILE_IMMEDIATE) != 0) { statement = (ExecutableStatement) subCompileExpression(expr, start, offset, pCtx); egressType = statement.getKnownEgressType(); } }
public Substatement(char[] expr, int start, int offset, int fields, ParserContext pCtx) { super(pCtx); this.expr = expr; this.start = start; this.offset = offset; if (((this.fields = fields) & COMPILE_IMMEDIATE) != 0) { this.egressType = (this.statement = (ExecutableStatement) subCompileExpression(expr, start, offset, pCtx)) .getKnownEgressType(); } }
public Substatement(char[] expr, int start, int offset, int fields, ParserContext pCtx) { super(pCtx); this.expr = expr; this.start = start; this.offset = offset; if (((this.fields = fields) & COMPILE_IMMEDIATE) != 0) { this.egressType = (this.statement = (ExecutableStatement) subCompileExpression(expr, start, offset, pCtx)) .getKnownEgressType(); } }
public IndexedOperativeAssign(char[] expr, int start, int offset, int operation, int register, int fields, ParserContext pCtx) { super(pCtx); this.operation = operation; this.expr = expr; this.start = start; this.offset = offset; this.register = register; if ((fields & COMPILE_IMMEDIATE) != 0) { statement = (ExecutableStatement) subCompileExpression(expr, start, offset, pCtx); egressType = statement.getKnownEgressType(); } }
public Substatement(char[] expr, int fields, ParserContext pCtx) { this.name = expr; if (((this.fields = fields) & COMPILE_IMMEDIATE) != 0) { this.egressType = (this.statement = (ExecutableStatement) subCompileExpression(this.name, pCtx)) .getKnownEgressType(); } }
public Negation(char[] expr, int start, int offset, int fields, ParserContext pCtx) { super(pCtx); this.expr = expr; this.start = start; this.offset = offset; if ((fields & COMPILE_IMMEDIATE) != 0) { if (((this.stmt = (ExecutableStatement) subCompileExpression(expr, start, offset, pCtx)).getKnownEgressType() != null) && (!ParseTools.boxPrimitive(stmt.getKnownEgressType()).isAssignableFrom(Boolean.class))) { throw new CompileException("negation operator cannot be applied to non-boolean type", expr, start); } } }
public Negation(char[] expr, int start, int offset, int fields, ParserContext pCtx) { super(pCtx); this.expr = expr; this.start = start; this.offset = offset; if ((fields & COMPILE_IMMEDIATE) != 0) { if (((this.stmt = (ExecutableStatement) subCompileExpression(expr, start, offset, pCtx)).getKnownEgressType() != null) && (!ParseTools.boxPrimitive(stmt.getKnownEgressType()).isAssignableFrom(Boolean.class))) { throw new CompileException("negation operator cannot be applied to non-boolean type", expr, start); } } }
public Negation(char[] name, int fields, ParserContext pCtx) { this.name = name; if ((fields & COMPILE_IMMEDIATE) != 0) { if (((this.stmt = (ExecutableStatement) subCompileExpression(name, pCtx)).getKnownEgressType() != null) && (!ParseTools.boxPrimitive(stmt.getKnownEgressType()).isAssignableFrom(Boolean.class))) { throw new CompileException("negation operator cannot be applied to non-boolean type"); } } }
public Sign(char[] expr, int start, int end, int fields, ParserContext pCtx) { super(expr, start + 1, end, fields); if ((fields & COMPILE_IMMEDIATE) != 0) { stmt = (ExecutableStatement) ParseTools.subCompileExpression(name, pCtx); egressType = stmt.getKnownEgressType(); if (egressType != null && egressType != Object.class) { initSigner(egressType); } } }
private void subCompile(String ex) { if (colType == null) { subCompileExpression(ex.toCharArray(), pCtx); } else { Class r = ((ExecutableStatement) subCompileExpression(ex.toCharArray(), pCtx)).getKnownEgressType(); if (!colType.isAssignableFrom(r) && (isStrongType() || !DataConversion.canConvert(r, colType))) { throw new CompileException("expected type: " + colType.getName() + "; but found: " + r.getName()); } } }
public Object getReducedValueAccelerated(Object ctx, Object thisValue, VariableResolverFactory factory) { if (statement == null) { statement = (ExecutableStatement) subCompileExpression(expr, this.start, this.offset, pCtx); acc = (CompiledAccExpression) compileSetExpression(property.toCharArray(), statement.getKnownEgressType(), pCtx); } acc.setValue(ctx, thisValue, factory, ctx = statement.getValue(ctx, thisValue, factory)); return ctx; }
public OperativeAssign(String variableName, char[] expr, int operation, int fields, ParserContext pCtx) { this.varName = variableName; this.operation = operation; this.name = expr; if ((fields & COMPILE_IMMEDIATE) != 0) { egressType = (statement = (ExecutableStatement) subCompileExpression(expr, pCtx)).getKnownEgressType(); if (pCtx.isStrongTyping()) { knownInType = ParseTools.__resolveType(egressType); } } }
public Object getReducedValueAccelerated(Object ctx, Object thisValue, VariableResolverFactory factory) { if (statement == null) { statement = (ExecutableStatement) subCompileExpression(expr, this.start, this.offset, pCtx); acc = (CompiledAccExpression) compileSetExpression(property.toCharArray(), statement.getKnownEgressType(), pCtx); } acc.setValue(ctx, thisValue, factory, ctx = statement.getValue(ctx, thisValue, factory)); return ctx; }
private void subCompile(int start, int offset) { if (colType == null) { subCompileExpression(property, start, offset, pCtx); } else { Class r = ((ExecutableStatement) subCompileExpression(property, start, offset, pCtx)).getKnownEgressType(); if (r != null && !isAssignableFrom(colType, r) && (isStrongType() || !DataConversion.canConvert(r, colType))) { throw new CompileException("expected type: " + colType.getName() + "; but found: " + r.getName(), property, cursor); } } }
private void subCompile(int start, int offset) { if (colType == null) { subCompileExpression(property, start, offset, pCtx); } else { Class r = ((ExecutableStatement) subCompileExpression(property, start, offset, pCtx)).getKnownEgressType(); if (r != null && !isAssignableFrom(colType, r) && (isStrongType() || !DataConversion.canConvert(r, colType))) { throw new CompileException("expected type: " + colType.getName() + "; but found: " + r.getName(), property, cursor); } } }
public Object getReducedValueAccelerated(Object ctx, Object thisValue, VariableResolverFactory factory) { if (statement == null) { statement = (ExecutableStatement) subCompileExpression(stmt); acc = (CompiledAccExpression) compileSetExpression(property.toCharArray(), statement.getKnownEgressType(), getCurrentThreadParserContext()); } acc.setValue(ctx, thisValue, factory, ctx = statement.getValue(ctx, thisValue, factory)); return ctx; }
public WithNode(char[] expr, char[] block, int fields, ParserContext pCtx) { nestParm = createStringTrimmed(this.name = expr); this.block = block; if ((fields & COMPILE_IMMEDIATE) != 0) { pCtx.setBlockSymbols(true); egressType = (nestedStatement = (ExecutableStatement) subCompileExpression(nestParm.toCharArray(), pCtx)).getKnownEgressType(); withExpressions = compileWithExpressions(block, nestParm, egressType, pCtx); pCtx.setBlockSymbols(false); } }
public WithNode(char[] expr, int start, int offset, int blockStart, int blockOffset, int fields, ParserContext pCtx) { super(pCtx); nestParm = createStringTrimmed(this.expr = expr, this.start = start, this.offset = offset); this.blockStart = blockStart; this.blockOffset = blockOffset; if ((fields & COMPILE_IMMEDIATE) != 0) { pCtx.setBlockSymbols(true); egressType = (compiledBlock = (ExecutableStatement) subCompileExpression(expr, start, offset, pCtx)).getKnownEgressType(); withExpressions = compileWithExpressions(expr, blockStart, blockOffset, nestParm, egressType, pCtx); pCtx.setBlockSymbols(false); } }
public void testEgressTypeCorrect() { ExecutableStatement stmt = (ExecutableStatement) MVEL.compileExpression("type", ParserContext.create().stronglyTyped() .withInput("this", Cheese.class)); assertEquals(String.class, stmt.getKnownEgressType()); }