code: private boolean evaluate(Object object) {
  		if (this.opcode == Opcode.INVALID) {
  			throw new TemplateException("Invalid conditional expression |%s|. Not supported opcode.", this.expression);
  		}
  		Processor processor = getProcessor(opcode);
  
  		if (this.operand == null && !processor.acceptNullOperand()) {
  			throw new TemplateException("Invalid conditional expression |%s|. Missing mandatory operand for operator |%s|.", this.expression, this.opcode);
  		}
  		if (!processor.acceptValue(object)) {
  			throw new TemplateException("Invalid conditional expression |%s|. Operator |%s| does not accept value type |%s|.", this.expression, this.opcode, object.getClass());
  		}
  		if (this.operand != null && !OperandFormatValidator.isValid(object, this.operand)) {
  			throw new TemplateException("Invalid conditional expression |%s|. Operand does not match value type |%s|. See |%s| API.", this.expression, object.getClass(), OperandFormatValidator.class);
  		}
  
  		boolean value = processor.evaluate(object, this.operand);
  		return this.not ? !value : value;
  	}
docs: Evaluate this conditional expression against given object value. Execute this conditional expression operator on given
  <code>object</code> value and {@link #operand} defined by expression. Evaluation is executed after {@link #parse()}
  counter part that already initialized this conditional expression internal state. This method takes care to test internal
  state consistency and throws templates exception if bad.
  
  @param object value to evaluate.
  @return true if this conditional expression is positively evaluated.
  @throws TemplateException if this conditional expression internal state is not consistent.