docs: public boolean match(Object[] statements) {
  		boolean result = true;
  
  		if (operator == null) {
  			return ((Predicate) elementsArray[0]).match(statements);
  		}
  
  		switch (operator.getType()) {
  			case NOT: {
  				return !((Predicate) elementsArray[0]).match(statements);
  			}
  			case AND: {
  				for (int i = 0; i < elementsArray.length; i++) {
  					result = result && ((Predicate) elementsArray[i]).match(statements);
  				}
  				break;
  			}
  			case OR: {
  				result = false;
  				for (int i = 0; i < elementsArray.length; i++) {
  					result = result || ((Predicate) elementsArray[i]).match(statements);
  				}
  				break;
  			}
  		}
  		return result;
  	}