docs: public boolean evaluate(Object context){
  		switch (operatorType){
  		case OPERATOR_AND:
  			for (BooleanExpression e: children){
  				if (e.evaluate(context) == false){
  					return false;
  				}
  			}
  			return true;
  		case OPERATOR_OR:
  			for (BooleanExpression e: children){
  				if (e.evaluate(context) == true){
  					return true;
  				}
  			}
  			return false;
  		case OPERATOR_NOT:
  			if (children.size() != 1){
  				throw new UnsupportedOperationException("One and only one operand is allowed for NOT operator.");
  			}
  			BooleanExpression e = children.get(0);
  			return !e.evaluate(context);
  		default:
  			throw new UnsupportedOperationException("Operand should implement its own evaluation method.");
  		}
  	}