* @param breakoncap
   * @param breakonnumber
   * @param breakonseparators
   * @param removeprefix
   * @param removesuffix
   * @param addprefix
   * @param addsuffix
   * @param outputcase
   * @param outputseparator
   * @return String
   */
  public static String makeMatchingNameFull(String originalname, Keyword breakoncap, Keyword breakonnumber, String breakonseparators, String removeprefix, String removesuffix, String addprefix, String addsuffix, Keyword outputcase, String outputseparator) {
    { int prefixlength = removeprefix.length();
      int suffixlength = removesuffix.length();
      String resultString = originalname;
      int resultLength = 0;

      if ((prefixlength > 0) &&
          ((prefixlength <= originalname.length()) &&
           Stella.stringEqlP(removeprefix, Native.string_subsequence(originalname, 0, prefixlength)))) {
        resultString = Native.string_subsequence(originalname, prefixlength, Stella.NULL_INTEGER);
      }
      resultLength = resultString.length();
      if ((suffixlength > 0) &&
          ((suffixlength <= resultLength) &&
           Stella.stringEqlP(removesuffix, Native.string_subsequence(resultString, resultLength - suffixlength, resultLength)))) {
        resultString = Native.string_subsequence(resultString, 0, resultLength - suffixlength);
      }
      if (Stella.stringEqlP(resultString, "")) {
        resultString = originalname;
      }
      resultString = Cons.composeNamestringFull(Stella.decomposeNamestringFull(resultString, breakoncap, breakonnumber, breakonseparators), addprefix, addsuffix, outputcase, outputseparator, null, false);
      if (Stella.stringEqlP(resultString, "")) {
        return (originalname);
      }
      else {
        return (resultString);
      }
    }
  }