class BeamSqlOverlayExpression extends BeamSqlExpression {

  @Override
  public boolean accept() {
    if (operands.size() < 3 || operands.size() > 4) {
      return false;
    }

    if (!SqlTypeName.CHAR_TYPES.contains(opType(0))
        || !SqlTypeName.CHAR_TYPES.contains(opType(1))
        || !SqlTypeName.INT_TYPES.contains(opType(2))) {
      return false;
    }

    if (operands.size() == 4 && !SqlTypeName.INT_TYPES.contains(opType(3))) {
      return false;
    }

    return true;
  }

  public  BeamSqlOverlayExpression(List<BeamSqlExpression> operands);

}