@Override protected void cloneArguments(Expression cloneExp, String replacedIdentifier, Expression replacement, ReplacemenetState replacementState) { then_BI clone = (then_BI) cloneExp; clone.whenTrueExp = whenTrueExp.deepCloneWithIdentifierReplaced(replacedIdentifier, replacement, replacementState); clone.whenFalseExp = whenFalseExp.deepCloneWithIdentifierReplaced(replacedIdentifier, replacement, replacementState); }
@Override protected Expression deepCloneWithIdentifierReplaced_inner( String replacedIdentifier, Expression replacement, ReplacemenetState replacementState) { return new AddConcatExpression( left.deepCloneWithIdentifierReplaced(replacedIdentifier, replacement, replacementState), right.deepCloneWithIdentifierReplaced(replacedIdentifier, replacement, replacementState)); }
@Override protected Expression deepCloneWithIdentifierReplaced_inner( String replacedIdentifier, Expression replacement, ReplacemenetState replacementState) { return new ArithmeticExpression( lho.deepCloneWithIdentifierReplaced(replacedIdentifier, replacement, replacementState), rho.deepCloneWithIdentifierReplaced(replacedIdentifier, replacement, replacementState), operator); }
@Override protected Expression deepCloneWithIdentifierReplaced_inner( String replacedIdentifier, Expression replacement, ReplacemenetState replacementState) { return new ComparisonExpression( left.deepCloneWithIdentifierReplaced(replacedIdentifier, replacement, replacementState), right.deepCloneWithIdentifierReplaced(replacedIdentifier, replacement, replacementState), opString); }
@Override protected Expression deepCloneWithIdentifierReplaced_inner( String replacedIdentifier, Expression replacement, ReplacemenetState replacementState) { return new Range( lho.deepCloneWithIdentifierReplaced(replacedIdentifier, replacement, replacementState), rho.deepCloneWithIdentifierReplaced(replacedIdentifier, replacement, replacementState), endType); }
@Override protected Expression deepCloneWithIdentifierReplaced_inner(String replacedIdentifier, Expression replacement, ReplacemenetState replacementState) { return new DefaultToExpression( lho.deepCloneWithIdentifierReplaced(replacedIdentifier, replacement, replacementState), rho != null ? rho.deepCloneWithIdentifierReplaced(replacedIdentifier, replacement, replacementState) : null); }
@Override protected Expression deepCloneWithIdentifierReplaced_inner( String replacedIdentifier, Expression replacement, ReplacemenetState replacementState) { return new AndExpression( lho.deepCloneWithIdentifierReplaced(replacedIdentifier, replacement, replacementState), rho.deepCloneWithIdentifierReplaced(replacedIdentifier, replacement, replacementState)); }
@Override protected Expression deepCloneWithIdentifierReplaced_inner( String replacedIdentifier, Expression replacement, ReplacemenetState replacementState) { return new DynamicKeyName( target.deepCloneWithIdentifierReplaced(replacedIdentifier, replacement, replacementState), keyExpression.deepCloneWithIdentifierReplaced(replacedIdentifier, replacement, replacementState)); } }
@Override protected Expression deepCloneWithIdentifierReplaced_inner( String replacedIdentifier, Expression replacement, ReplacemenetState replacementState) { return new OrExpression( lho.deepCloneWithIdentifierReplaced(replacedIdentifier, replacement, replacementState), rho.deepCloneWithIdentifierReplaced(replacedIdentifier, replacement, replacementState)); }
@Override protected Expression deepCloneWithIdentifierReplaced_inner( String replacedIdentifier, Expression replacement, ReplacemenetState replacementState) { try { BuiltIn clone = (BuiltIn) clone(); clone.target = target.deepCloneWithIdentifierReplaced(replacedIdentifier, replacement, replacementState); return clone; } catch (CloneNotSupportedException e) { throw new RuntimeException("Internal error: " + e); } }
@Override protected void cloneArguments(Expression clone, String replacedIdentifier, Expression replacement, ReplacemenetState replacementState) { ArrayList parametersClone = new ArrayList(parameters.size()); for (int i = 0; i < parameters.size(); i++) { parametersClone.add(((Expression) parameters.get(i)) .deepCloneWithIdentifierReplaced(replacedIdentifier, replacement, replacementState)); } ((switch_BI) clone).parameters = parametersClone; }
@Override protected Expression deepCloneWithIdentifierReplaced_inner( String replacedIdentifier, Expression replacement, ReplacemenetState replacementState) { return new ParentheticalExpression( nested.deepCloneWithIdentifierReplaced(replacedIdentifier, replacement, replacementState)); }
@Override protected Expression deepCloneWithIdentifierReplaced_inner( String replacedIdentifier, Expression replacement, ReplacemenetState replacementState) { return new NotExpression( target.deepCloneWithIdentifierReplaced(replacedIdentifier, replacement, replacementState)); }
@Override protected Expression deepCloneWithIdentifierReplaced_inner( String replacedIdentifier, Expression replacement, ReplacemenetState replacementState) { return new Dot( target.deepCloneWithIdentifierReplaced(replacedIdentifier, replacement, replacementState), key); }
@Override protected Expression deepCloneWithIdentifierReplaced_inner( String replacedIdentifier, Expression replacement, ReplacemenetState replacementState) { ArrayList clonedValues = (ArrayList) items.clone(); for (ListIterator iter = clonedValues.listIterator(); iter.hasNext(); ) { iter.set(((Expression) iter.next()).deepCloneWithIdentifierReplaced( replacedIdentifier, replacement, replacementState)); } return new ListLiteral(clonedValues); }
@Override protected Expression deepCloneWithIdentifierReplaced_inner(String replacedIdentifier, Expression replacement, ReplacemenetState replacementState) { return new ExistsExpression( exp.deepCloneWithIdentifierReplaced(replacedIdentifier, replacement, replacementState)); }
@Override protected Expression deepCloneWithIdentifierReplaced_inner( String replacedIdentifier, Expression replacement, ReplacemenetState replacementState) { return new UnaryPlusMinusExpression( target.deepCloneWithIdentifierReplaced(replacedIdentifier, replacement, replacementState), isMinus); }
Expression doEscape(Expression expression) { return escapedExpr.deepCloneWithIdentifierReplaced(variable, expression, new ReplacemenetState()); }
@Override protected Expression deepCloneWithIdentifierReplaced_inner( String replacedIdentifier, Expression replacement, ReplacemenetState replacementState) { return new MethodCall( target.deepCloneWithIdentifierReplaced(replacedIdentifier, replacement, replacementState), (ListLiteral) arguments.deepCloneWithIdentifierReplaced(replacedIdentifier, replacement, replacementState)); }
@Override protected Expression deepCloneWithIdentifierReplaced_inner( String replacedIdentifier, Expression replacement, ReplacemenetState replacementState) { if (this.name.equals(replacedIdentifier)) { if (replacementState.replacementAlreadyInUse) { Expression clone = replacement.deepCloneWithIdentifierReplaced(null, null, replacementState); clone.copyLocationFrom(replacement); return clone; } else { replacementState.replacementAlreadyInUse = true; return replacement; } } else { return new Identifier(this.name); } }