public List<Method> expandIfOpsParams() {

    boolean optParam = false;
    for (Param param : this.params) {
      if (param.isOptional()) {
        optParam = true;
        break;
      }
    }

    if (optParam) {

      List<Method> expandedMethods = new ArrayList<Method>();
      for (Param param : this.params) {
        if (param.isOptional()) {

          List<Param> newParams = sublistUntilParam(params, param);
          expandedMethods.add(new Method(name, doc, newParams, returnProp));
        }
      }

      return expandedMethods;

    } else {
      return Collections.emptyList();
    }
  }