protected boolean applies( LowerCase operand ) { return applies(operand.getOperand()); }
protected boolean applies( LowerCase operand ) { return applies(operand.getOperand()); }
@Override public void visit( LowerCase lowerCase ) { strategy.visit(lowerCase); enqueue(lowerCase.getOperand()); visitNext(); }
@Override public void visit( LowerCase lowerCase ) { append("LOWER("); lowerCase.getOperand().accept(this); append(')'); }
@Override public void visit( LowerCase lowerCase ) { strategy.visit(lowerCase); enqueue(lowerCase.getOperand()); visitNext(); }
@Override public void visit( LowerCase lowerCase ) { append("LOWER("); lowerCase.getOperand().accept(this); append(')'); }
@Test public void shouldParseDynamicOperandFromStringContainingLowerOfAnotherDynamicOperand() { DynamicOperand operand = parser.parseDynamicOperand(tokens("LOWER(tableA.property)"), typeSystem, mock(Source.class)); assertThat(operand, is(instanceOf(LowerCase.class))); LowerCase lower = (LowerCase)operand; assertThat(lower.selectorName(), is(selectorName("tableA"))); assertThat(lower.getOperand(), is(instanceOf(PropertyValue.class))); PropertyValue value = (PropertyValue)lower.getOperand(); assertThat(value.getPropertyName(), is("property")); assertThat(value.selectorName(), is(selectorName("tableA"))); Source source = new NamedSelector(selectorName("tableA")); operand = parser.parseDynamicOperand(tokens("LOWER(property)"), typeSystem, source); assertThat(operand, is(instanceOf(LowerCase.class))); lower = (LowerCase)operand; assertThat(lower.selectorName(), is(selectorName("tableA"))); assertThat(lower.getOperand(), is(instanceOf(PropertyValue.class))); value = (PropertyValue)lower.getOperand(); assertThat(value.getPropertyName(), is("property")); assertThat(value.selectorName(), is(selectorName("tableA"))); }
@Test public void shouldParseDynamicOperandFromStringContainingLowerOfUpperCaseOfAnotherOperand() { DynamicOperand operand = parser.parseDynamicOperand(tokens("LOWER(UPPER(tableA.property))"), typeSystem, mock(Source.class)); assertThat(operand, is(instanceOf(LowerCase.class))); LowerCase lower = (LowerCase)operand; assertThat(lower.selectorName(), is(selectorName("tableA"))); assertThat(lower.getOperand(), is(instanceOf(UpperCase.class))); UpperCase upper = (UpperCase)lower.getOperand(); assertThat(upper.selectorName(), is(selectorName("tableA"))); assertThat(upper.getOperand(), is(instanceOf(PropertyValue.class))); PropertyValue value = (PropertyValue)upper.getOperand(); assertThat(value.getPropertyName(), is("property")); assertThat(value.selectorName(), is(selectorName("tableA"))); }
@Test public void shouldParseDynamicOperandFromStringContainingUpperOfLowerCaseOfAnotherOperand() { DynamicOperand operand = parser.parseDynamicOperand(tokens("UPPER(LOWER(tableA.property))"), typeSystem, mock(Source.class)); assertThat(operand, is(instanceOf(UpperCase.class))); UpperCase upper = (UpperCase)operand; assertThat(upper.selectorName(), is(selectorName("tableA"))); assertThat(upper.getOperand(), is(instanceOf(LowerCase.class))); LowerCase lower = (LowerCase)upper.getOperand(); assertThat(lower.selectorName(), is(selectorName("tableA"))); assertThat(lower.getOperand(), is(instanceOf(PropertyValue.class))); PropertyValue value = (PropertyValue)lower.getOperand(); assertThat(value.getPropertyName(), is("property")); assertThat(value.selectorName(), is(selectorName("tableA"))); }
SelectorName replacement = rewrittenSelectors.get(operation.selectorName()); if (replacement == null) return operand; return new LowerCase(replaceReferencesToRemovedSource(context, operation.getOperand(), rewrittenSelectors));
SelectorName replacement = rewrittenSelectors.get(operation.selectorName()); if (replacement == null) return operand; return new LowerCase(replaceReferencesToRemovedSource(context, operation.getOperand(), rewrittenSelectors));
@Test @FixFor( "MODE-2166" ) public void shouldParseDynamicOperandFromStringContainingCastOfLowerCaseOfAnotherOperand() { DynamicOperand operand = parser.parseDynamicOperand(tokens("CAST(LOWER(tableA.property) AS DATE)"), typeSystem, mock(Source.class)); assertThat(operand, is(instanceOf(Cast.class))); Cast cast = (Cast)operand; assertThat(cast.selectorName(), is(selectorName("tableA"))); assertThat(cast.getOperand(), is(instanceOf(LowerCase.class))); assertEquals(PropertyType.DATE.toString(), cast.getDesiredTypeName()); LowerCase lower = (LowerCase)cast.getOperand(); assertThat(lower.selectorName(), is(selectorName("tableA"))); assertThat(lower.getOperand(), is(instanceOf(PropertyValue.class))); PropertyValue value = (PropertyValue)lower.getOperand(); assertThat(value.getPropertyName(), is("property")); assertThat(value.selectorName(), is(selectorName("tableA"))); }
verifyOrdering(length.getPropertyValue()); } else if (operand instanceof LowerCase) { verifyOrdering(((LowerCase)operand).getOperand()); } else if (operand instanceof UpperCase) { verifyOrdering(((UpperCase)operand).getOperand());
verifyOrdering(length.getPropertyValue()); } else if (operand instanceof LowerCase) { verifyOrdering(((LowerCase)operand).getOperand()); } else if (operand instanceof UpperCase) { verifyOrdering(((UpperCase)operand).getOperand());
verifyComparison(((LowerCase)operand).getOperand(), op, rhs); } else if (operand instanceof UpperCase) { verifyComparison(((UpperCase)operand).getOperand(), op, rhs);
verifyComparison(((LowerCase)operand).getOperand(), op, rhs); } else if (operand instanceof UpperCase) { verifyComparison(((UpperCase)operand).getOperand(), op, rhs);
DynamicOperand oldOperand = operation.getOperand(); DynamicOperand newOperand = replaceAliasesWithProperties(context, oldOperand, propertyByAlias); if (oldOperand == newOperand) return operation;
DynamicOperand oldOperand = operation.getOperand(); DynamicOperand newOperand = replaceAliasesWithProperties(context, oldOperand, propertyByAlias); if (oldOperand == newOperand) return operation;
return new LowerCase(replaceViewReferences(context, operation.getOperand(), mapping, node));
return new LowerCase(replaceViewReferences(context, operation.getOperand(), mapping, node));