public Window(Window other) { this.windowLength = other.getWindowLength(); this.slidingInterval = other.getSlidingInterval(); this.tsField = other.getTsField(); this.tsFields = other.tsFields; this.lagMs = other.getLagMs(); this.lateStream = other.lateStream; }
@Override public void accept(ExpressionVisitor visitor) { visitor.visit(this); }
@Override public void accept(ExpressionVisitor visitor) { for(Expression expression: expressions) { expression.accept(visitor); } }
private void mayBeUpdateTopologyConfig(Window window) { int messageTimeoutSecs = DELTA; int maxPending = DELTA; Window.WindowParam windowLength = window.getWindowLength(); Window.WindowParam slidingInterval = window.getSlidingInterval(); if (windowLength instanceof Window.Duration) { messageTimeoutSecs += ((Window.Duration) windowLength).getDurationMs()/1000; } else if (windowLength instanceof Window.Count) { maxPending += ((Window.Count) windowLength).getCount(); } if (slidingInterval instanceof Window.Duration) { messageTimeoutSecs += ((Window.Duration) slidingInterval).getDurationMs()/1000; } else if (slidingInterval instanceof Window.Count) { maxPending += ((Window.Count) slidingInterval).getCount(); } setIfGreater(StormTopologyLayoutConstants.TOPOLOGY_MESSAGE_TIMEOUT_SECS, messageTimeoutSecs); setIfGreater(StormTopologyLayoutConstants.TOPOLOGY_MAX_SPOUT_PENDING, maxPending); }
private void buildFunctionExpression(FunctionExpression functionExpression) { builder.append(functionExpression.getFunction().getName()).append("("); int count = 0; for (Expression expression : functionExpression.getOperands()) { if (++count > 1) { builder.append(", "); } expression.accept(this); } builder.append(")"); }
@Override public void visit(BinaryExpression binaryExpression) { maybeParenthesize(binaryExpression, binaryExpression.getFirst()); builder.append(getOperator(binaryExpression.getOperator())); maybeParenthesize(binaryExpression, binaryExpression.getSecond()); }
@Override public void visit(AsExpression asExpression) { aliases.add(asExpression.getAlias()); asExpression.getExpression().accept(this); }
private void maybeParenthesize(BinaryExpression parent, Expression child) { boolean paren = false; if (child instanceof BinaryExpression) { int childPrecedence = ((BinaryExpression) child).getOperator().getPrecedence(); int parentPrecedence = parent.getOperator().getPrecedence(); if (childPrecedence > parentPrecedence) { paren = true; } } if (paren) { builder.append("("); child.accept(this); builder.append(")"); } else { child.accept(this); } }
@Override public void visit(ArrayFieldExpression arrayFieldExpression) { arrayFieldExpression.getExpression().accept(this); builder.append("[").append(arrayFieldExpression.getIndex()).append("]"); }
@Override public void visit(MapFieldExpression mapFieldExpression) { mapFieldExpression.getExpression().accept(this); builder.append("['").append(mapFieldExpression.getKey()).append("']"); }
@Override public String asString() { if (expression == null) { // Builds and caches the expression string the first time it is called GroovyExpressionTranslator expressionTranslator = new GroovyExpressionTranslator(); condition.getExpression().accept(expressionTranslator); expression = expressionTranslator.getTranslatedExpression(); } return expression; }
@Override public void visit(AggregateFunctionExpression aggregateFunctionExpression) { buildFunctionExpression(aggregateFunctionExpression); aggregateFunctions.add(aggregateFunctionExpression.getFunction()); }
@Override public void visit(FunctionExpression functionExpression) { buildFunctionExpression(functionExpression); functions.add(functionExpression.getFunction()); }
@Override public void accept(ExpressionVisitor visitor) { visitor.visit(this); }
@Override public void accept(ExpressionVisitor visitor) { visitor.visit(this); } }
@Override public void accept(ExpressionVisitor visitor) { visitor.visit(this); }
@Override public void accept(ExpressionVisitor visitor) { visitor.visit(this); }
@Override public void accept(ExpressionVisitor visitor) { visitor.visit(this); }
@Override public void accept(ExpressionVisitor visitor) { visitor.visit(this); }
@Override public void accept(ExpressionVisitor visitor) { visitor.visit(this); }