Java源码示例:org.springframework.expression.TypeComparator

示例1
/**
 * Returns a boolean based on whether a value is in the range expressed. The first
 * operand is any value whilst the second is a list of two values - those two values
 * being the bounds allowed for the first operand (inclusive).
 * @param state the expression state
 * @return true if the left operand is in the range specified, false otherwise
 * @throws EvaluationException if there is a problem evaluating the expression
 */
@Override
public BooleanTypedValue getValueInternal(ExpressionState state) throws EvaluationException {
	Object left = getLeftOperand().getValueInternal(state).getValue();
	Object right = getRightOperand().getValueInternal(state).getValue();
	if (!(right instanceof List) || ((List<?>) right).size() != 2) {
		throw new SpelEvaluationException(getRightOperand().getStartPosition(),
				SpelMessage.BETWEEN_RIGHT_OPERAND_MUST_BE_TWO_ELEMENT_LIST);
	}

	List<?> list = (List<?>) right;
	Object low = list.get(0);
	Object high = list.get(1);
	TypeComparator comp = state.getTypeComparator();
	try {
		return BooleanTypedValue.forValue(comp.compare(left, low) >= 0 && comp.compare(left, high) <= 0);
	}
	catch (SpelEvaluationException ex) {
		ex.setPosition(getStartPosition());
		throw ex;
	}
}
 
示例2
/**
 * Returns a boolean based on whether a value is in the range expressed. The first
 * operand is any value whilst the second is a list of two values - those two values
 * being the bounds allowed for the first operand (inclusive).
 * @param state the expression state
 * @return true if the left operand is in the range specified, false otherwise
 * @throws EvaluationException if there is a problem evaluating the expression
 */
@Override
public BooleanTypedValue getValueInternal(ExpressionState state) throws EvaluationException {
	Object left = getLeftOperand().getValueInternal(state).getValue();
	Object right = getRightOperand().getValueInternal(state).getValue();
	if (!(right instanceof List) || ((List<?>) right).size() != 2) {
		throw new SpelEvaluationException(getRightOperand().getStartPosition(),
				SpelMessage.BETWEEN_RIGHT_OPERAND_MUST_BE_TWO_ELEMENT_LIST);
	}

	List<?> list = (List<?>) right;
	Object low = list.get(0);
	Object high = list.get(1);
	TypeComparator comp = state.getTypeComparator();
	try {
		return BooleanTypedValue.forValue(comp.compare(left, low) >= 0 && comp.compare(left, high) <= 0);
	}
	catch (SpelEvaluationException ex) {
		ex.setPosition(getStartPosition());
		throw ex;
	}
}
 
示例3
/**
 * Returns a boolean based on whether a value is in the range expressed. The first
 * operand is any value whilst the second is a list of two values - those two values
 * being the bounds allowed for the first operand (inclusive).
 * @param state the expression state
 * @return true if the left operand is in the range specified, false otherwise
 * @throws EvaluationException if there is a problem evaluating the expression
 */
@Override
public BooleanTypedValue getValueInternal(ExpressionState state) throws EvaluationException {
	Object left = getLeftOperand().getValueInternal(state).getValue();
	Object right = getRightOperand().getValueInternal(state).getValue();
	if (!(right instanceof List) || ((List<?>) right).size() != 2) {
		throw new SpelEvaluationException(getRightOperand().getStartPosition(),
				SpelMessage.BETWEEN_RIGHT_OPERAND_MUST_BE_TWO_ELEMENT_LIST);
	}

	List<?> list = (List<?>) right;
	Object low = list.get(0);
	Object high = list.get(1);
	TypeComparator comp = state.getTypeComparator();
	try {
		return BooleanTypedValue.forValue(comp.compare(left, low) >= 0 && comp.compare(left, high) <= 0);
	}
	catch (SpelEvaluationException ex) {
		ex.setPosition(getStartPosition());
		throw ex;
	}
}
 
示例4
/**
 * Returns a boolean based on whether a value is in the range expressed. The first
 * operand is any value whilst the second is a list of two values - those two values
 * being the bounds allowed for the first operand (inclusive).
 * @param state the expression state
 * @return true if the left operand is in the range specified, false otherwise
 * @throws EvaluationException if there is a problem evaluating the expression
 */
@Override
public BooleanTypedValue getValueInternal(ExpressionState state) throws EvaluationException {
	Object left = getLeftOperand().getValueInternal(state).getValue();
	Object right = getRightOperand().getValueInternal(state).getValue();
	if (!(right instanceof List) || ((List<?>) right).size() != 2) {
		throw new SpelEvaluationException(getRightOperand().getStartPosition(),
				SpelMessage.BETWEEN_RIGHT_OPERAND_MUST_BE_TWO_ELEMENT_LIST);
	}

	List<?> list = (List<?>) right;
	Object low = list.get(0);
	Object high = list.get(1);
	TypeComparator comp = state.getTypeComparator();
	try {
		return BooleanTypedValue.forValue(comp.compare(left, low) >= 0 && comp.compare(left, high) <= 0);
	}
	catch (SpelEvaluationException ex) {
		ex.setPosition(getStartPosition());
		throw ex;
	}
}
 
示例5
@Test
public void testStandardEvaluationContext() {
	StandardEvaluationContext context = new StandardEvaluationContext();
	assertNotNull(context.getTypeComparator());

	TypeComparator tc = new StandardTypeComparator();
	context.setTypeComparator(tc);
	assertEquals(tc, context.getTypeComparator());

	TypeLocator tl = new StandardTypeLocator();
	context.setTypeLocator(tl);
	assertEquals(tl, context.getTypeLocator());
}
 
示例6
@Test
public void testPrimitives() throws EvaluationException {
	TypeComparator comparator = new StandardTypeComparator();
	// primitive int
	assertTrue(comparator.compare(1, 2) < 0);
	assertTrue(comparator.compare(1, 1) == 0);
	assertTrue(comparator.compare(2, 1) > 0);

	assertTrue(comparator.compare(1.0d, 2) < 0);
	assertTrue(comparator.compare(1.0d, 1) == 0);
	assertTrue(comparator.compare(2.0d, 1) > 0);

	assertTrue(comparator.compare(1.0f, 2) < 0);
	assertTrue(comparator.compare(1.0f, 1) == 0);
	assertTrue(comparator.compare(2.0f, 1) > 0);

	assertTrue(comparator.compare(1L, 2) < 0);
	assertTrue(comparator.compare(1L, 1) == 0);
	assertTrue(comparator.compare(2L, 1) > 0);

	assertTrue(comparator.compare(1, 2L) < 0);
	assertTrue(comparator.compare(1, 1L) == 0);
	assertTrue(comparator.compare(2, 1L) > 0);

	assertTrue(comparator.compare(1L, 2L) < 0);
	assertTrue(comparator.compare(1L, 1L) == 0);
	assertTrue(comparator.compare(2L, 1L) > 0);
}
 
示例7
@Test
public void testNonPrimitiveNumbers() throws EvaluationException {
	TypeComparator comparator = new StandardTypeComparator();

	BigDecimal bdOne = new BigDecimal("1");
	BigDecimal bdTwo = new BigDecimal("2");

	assertTrue(comparator.compare(bdOne, bdTwo) < 0);
	assertTrue(comparator.compare(bdOne, new BigDecimal("1")) == 0);
	assertTrue(comparator.compare(bdTwo, bdOne) > 0);

	assertTrue(comparator.compare(1, bdTwo) < 0);
	assertTrue(comparator.compare(1, bdOne) == 0);
	assertTrue(comparator.compare(2, bdOne) > 0);

	assertTrue(comparator.compare(1.0d, bdTwo) < 0);
	assertTrue(comparator.compare(1.0d, bdOne) == 0);
	assertTrue(comparator.compare(2.0d, bdOne) > 0);

	assertTrue(comparator.compare(1.0f, bdTwo) < 0);
	assertTrue(comparator.compare(1.0f, bdOne) == 0);
	assertTrue(comparator.compare(2.0f, bdOne) > 0);

	assertTrue(comparator.compare(1L, bdTwo) < 0);
	assertTrue(comparator.compare(1L, bdOne) == 0);
	assertTrue(comparator.compare(2L, bdOne) > 0);

}
 
示例8
@Test
public void testNulls() throws EvaluationException {
	TypeComparator comparator = new StandardTypeComparator();
	assertTrue(comparator.compare(null,"abc")<0);
	assertTrue(comparator.compare(null,null)==0);
	assertTrue(comparator.compare("abc",null)>0);
}
 
示例9
@Test
public void testObjects() throws EvaluationException {
	TypeComparator comparator = new StandardTypeComparator();
	assertTrue(comparator.compare("a","a")==0);
	assertTrue(comparator.compare("a","b")<0);
	assertTrue(comparator.compare("b","a")>0);
}
 
示例10
@Test
public void testCanCompare() throws EvaluationException {
	TypeComparator comparator = new StandardTypeComparator();
	assertTrue(comparator.canCompare(null,1));
	assertTrue(comparator.canCompare(1,null));

	assertTrue(comparator.canCompare(2,1));
	assertTrue(comparator.canCompare("abc","def"));
	assertTrue(comparator.canCompare("abc",3));
	assertFalse(comparator.canCompare(String.class,3));
}
 
示例11
@Test
public void testStandardEvaluationContext() {
	StandardEvaluationContext context = new StandardEvaluationContext();
	assertNotNull(context.getTypeComparator());

	TypeComparator tc = new StandardTypeComparator();
	context.setTypeComparator(tc);
	assertEquals(tc, context.getTypeComparator());

	TypeLocator tl = new StandardTypeLocator();
	context.setTypeLocator(tl);
	assertEquals(tl, context.getTypeLocator());
}
 
示例12
@Test
public void testPrimitives() throws EvaluationException {
	TypeComparator comparator = new StandardTypeComparator();
	// primitive int
	assertTrue(comparator.compare(1, 2) < 0);
	assertTrue(comparator.compare(1, 1) == 0);
	assertTrue(comparator.compare(2, 1) > 0);

	assertTrue(comparator.compare(1.0d, 2) < 0);
	assertTrue(comparator.compare(1.0d, 1) == 0);
	assertTrue(comparator.compare(2.0d, 1) > 0);

	assertTrue(comparator.compare(1.0f, 2) < 0);
	assertTrue(comparator.compare(1.0f, 1) == 0);
	assertTrue(comparator.compare(2.0f, 1) > 0);

	assertTrue(comparator.compare(1L, 2) < 0);
	assertTrue(comparator.compare(1L, 1) == 0);
	assertTrue(comparator.compare(2L, 1) > 0);

	assertTrue(comparator.compare(1, 2L) < 0);
	assertTrue(comparator.compare(1, 1L) == 0);
	assertTrue(comparator.compare(2, 1L) > 0);

	assertTrue(comparator.compare(1L, 2L) < 0);
	assertTrue(comparator.compare(1L, 1L) == 0);
	assertTrue(comparator.compare(2L, 1L) > 0);
}
 
示例13
@Test
public void testNonPrimitiveNumbers() throws EvaluationException {
	TypeComparator comparator = new StandardTypeComparator();

	BigDecimal bdOne = new BigDecimal("1");
	BigDecimal bdTwo = new BigDecimal("2");

	assertTrue(comparator.compare(bdOne, bdTwo) < 0);
	assertTrue(comparator.compare(bdOne, new BigDecimal("1")) == 0);
	assertTrue(comparator.compare(bdTwo, bdOne) > 0);

	assertTrue(comparator.compare(1, bdTwo) < 0);
	assertTrue(comparator.compare(1, bdOne) == 0);
	assertTrue(comparator.compare(2, bdOne) > 0);

	assertTrue(comparator.compare(1.0d, bdTwo) < 0);
	assertTrue(comparator.compare(1.0d, bdOne) == 0);
	assertTrue(comparator.compare(2.0d, bdOne) > 0);

	assertTrue(comparator.compare(1.0f, bdTwo) < 0);
	assertTrue(comparator.compare(1.0f, bdOne) == 0);
	assertTrue(comparator.compare(2.0f, bdOne) > 0);

	assertTrue(comparator.compare(1L, bdTwo) < 0);
	assertTrue(comparator.compare(1L, bdOne) == 0);
	assertTrue(comparator.compare(2L, bdOne) > 0);

}
 
示例14
@Test
public void testNulls() throws EvaluationException {
	TypeComparator comparator = new StandardTypeComparator();
	assertTrue(comparator.compare(null,"abc")<0);
	assertTrue(comparator.compare(null,null)==0);
	assertTrue(comparator.compare("abc",null)>0);
}
 
示例15
@Test
public void testObjects() throws EvaluationException {
	TypeComparator comparator = new StandardTypeComparator();
	assertTrue(comparator.compare("a","a")==0);
	assertTrue(comparator.compare("a","b")<0);
	assertTrue(comparator.compare("b","a")>0);
}
 
示例16
@Test
public void testCanCompare() throws EvaluationException {
	TypeComparator comparator = new StandardTypeComparator();
	assertTrue(comparator.canCompare(null,1));
	assertTrue(comparator.canCompare(1,null));

	assertTrue(comparator.canCompare(2,1));
	assertTrue(comparator.canCompare("abc","def"));
	assertTrue(comparator.canCompare("abc",3));
	assertFalse(comparator.canCompare(String.class,3));
}
 
示例17
@Test
public void testStandardEvaluationContext() {
	StandardEvaluationContext context = new StandardEvaluationContext();
	assertNotNull(context.getTypeComparator());

	TypeComparator tc = new StandardTypeComparator();
	context.setTypeComparator(tc);
	assertEquals(tc, context.getTypeComparator());

	TypeLocator tl = new StandardTypeLocator();
	context.setTypeLocator(tl);
	assertEquals(tl, context.getTypeLocator());
}
 
示例18
@Test
public void testPrimitives() throws EvaluationException {
	TypeComparator comparator = new StandardTypeComparator();
	// primitive int
	assertTrue(comparator.compare(1, 2) < 0);
	assertTrue(comparator.compare(1, 1) == 0);
	assertTrue(comparator.compare(2, 1) > 0);

	assertTrue(comparator.compare(1.0d, 2) < 0);
	assertTrue(comparator.compare(1.0d, 1) == 0);
	assertTrue(comparator.compare(2.0d, 1) > 0);

	assertTrue(comparator.compare(1.0f, 2) < 0);
	assertTrue(comparator.compare(1.0f, 1) == 0);
	assertTrue(comparator.compare(2.0f, 1) > 0);

	assertTrue(comparator.compare(1L, 2) < 0);
	assertTrue(comparator.compare(1L, 1) == 0);
	assertTrue(comparator.compare(2L, 1) > 0);

	assertTrue(comparator.compare(1, 2L) < 0);
	assertTrue(comparator.compare(1, 1L) == 0);
	assertTrue(comparator.compare(2, 1L) > 0);

	assertTrue(comparator.compare(1L, 2L) < 0);
	assertTrue(comparator.compare(1L, 1L) == 0);
	assertTrue(comparator.compare(2L, 1L) > 0);
}
 
示例19
@Test
public void testNonPrimitiveNumbers() throws EvaluationException {
	TypeComparator comparator = new StandardTypeComparator();

	BigDecimal bdOne = new BigDecimal("1");
	BigDecimal bdTwo = new BigDecimal("2");

	assertTrue(comparator.compare(bdOne, bdTwo) < 0);
	assertTrue(comparator.compare(bdOne, new BigDecimal("1")) == 0);
	assertTrue(comparator.compare(bdTwo, bdOne) > 0);

	assertTrue(comparator.compare(1, bdTwo) < 0);
	assertTrue(comparator.compare(1, bdOne) == 0);
	assertTrue(comparator.compare(2, bdOne) > 0);

	assertTrue(comparator.compare(1.0d, bdTwo) < 0);
	assertTrue(comparator.compare(1.0d, bdOne) == 0);
	assertTrue(comparator.compare(2.0d, bdOne) > 0);

	assertTrue(comparator.compare(1.0f, bdTwo) < 0);
	assertTrue(comparator.compare(1.0f, bdOne) == 0);
	assertTrue(comparator.compare(2.0f, bdOne) > 0);

	assertTrue(comparator.compare(1L, bdTwo) < 0);
	assertTrue(comparator.compare(1L, bdOne) == 0);
	assertTrue(comparator.compare(2L, bdOne) > 0);

}
 
示例20
@Test
public void testNulls() throws EvaluationException {
	TypeComparator comparator = new StandardTypeComparator();
	assertTrue(comparator.compare(null,"abc")<0);
	assertTrue(comparator.compare(null,null)==0);
	assertTrue(comparator.compare("abc",null)>0);
}
 
示例21
@Test
public void testObjects() throws EvaluationException {
	TypeComparator comparator = new StandardTypeComparator();
	assertTrue(comparator.compare("a","a")==0);
	assertTrue(comparator.compare("a","b")<0);
	assertTrue(comparator.compare("b","a")>0);
}
 
示例22
@Test
public void testCanCompare() throws EvaluationException {
	TypeComparator comparator = new StandardTypeComparator();
	assertTrue(comparator.canCompare(null,1));
	assertTrue(comparator.canCompare(1,null));

	assertTrue(comparator.canCompare(2,1));
	assertTrue(comparator.canCompare("abc","def"));
	assertTrue(comparator.canCompare("abc",3));
	assertFalse(comparator.canCompare(String.class,3));
}
 
示例23
/**
 * Return an instance of {@link StandardTypeComparator}.
 */
@Override
public TypeComparator getTypeComparator() {
	return this.typeComparator;
}
 
示例24
public void setTypeComparator(TypeComparator typeComparator) {
	Assert.notNull(typeComparator, "TypeComparator must not be null");
	this.typeComparator = typeComparator;
}
 
示例25
@Override
public TypeComparator getTypeComparator() {
	return this.typeComparator;
}
 
示例26
public TypeComparator getTypeComparator() {
	return this.relatedContext.getTypeComparator();
}
 
示例27
/**
 * Return an instance of {@link StandardTypeComparator}.
 */
@Override
public TypeComparator getTypeComparator() {
	return this.typeComparator;
}
 
示例28
public void setTypeComparator(TypeComparator typeComparator) {
	Assert.notNull(typeComparator, "TypeComparator must not be null");
	this.typeComparator = typeComparator;
}
 
示例29
@Override
public TypeComparator getTypeComparator() {
	return this.typeComparator;
}
 
示例30
public TypeComparator getTypeComparator() {
	return this.relatedContext.getTypeComparator();
}