* @param options
   * @return String
   */
  public static String composeNamestring(Cons nameComponents, Cons options) {
    { PropertyList self000 = PropertyList.newPropertyList();

      self000.thePlist = options;
      { PropertyList plist = self000;
        String prefix = "";
        String suffix = "";
        Keyword outputcase = Stella.KWD_TITLECASE;
        String outputseparator = "";
        StringHashTable translationTable = null;
        boolean useAcronymHeuristicsP = false;

        Stella_Object.vetOptions(plist, Stella.getQuotedTree("((:PREFIX :SUFFIX :CASE :SEPARATOR :TRANSLATION-TABLE :USE-ACRONYM-HEURISTICS?) \"/STELLA\")", "/STELLA"));
        { Stella_Object key = null;
          Stella_Object value = null;
          Cons iter000 = plist.thePlist;

          for (;!(iter000 == Stella.NIL); iter000 = iter000.rest.rest) {
            key = iter000.value;
            value = iter000.rest.value;
            { GeneralizedSymbol testValue000 = ((GeneralizedSymbol)(key));

              if (testValue000 == Stella.KWD_PREFIX) {
                prefix = ((StringWrapper)(value)).wrapperValue;
              }
              else if (testValue000 == Stella.KWD_SUFFIX) {
                suffix = ((StringWrapper)(value)).wrapperValue;
              }
              else if (testValue000 == Stella.KWD_CASE) {
                outputcase = ((Keyword)(value));
              }
              else if (testValue000 == Stella.KWD_SEPARATOR) {
                outputseparator = ((StringWrapper)(value)).wrapperValue;
              }
              else if (testValue000 == Stella.KWD_TRANSLATION_TABLE) {
                translationTable = ((StringHashTable)(value));
              }
              else if (testValue000 == Stella.KWD_USE_ACRONYM_HEURISTICSp) {
                useAcronymHeuristicsP = value == Stella.TRUE_WRAPPER;
              }
              else {
                { OutputStringStream stream000 = OutputStringStream.newOutputStringStream();

                  stream000.nativeStream.print("`" + testValue000 + "' is not a valid case option");
                  throw ((StellaException)(StellaException.newStellaException(stream000.theStringReader()).fillInStackTrace()));
                }
              }
            }
          }
        }
        return (Cons.composeNamestringFull(nameComponents, prefix, suffix, outputcase, outputseparator, translationTable, useAcronymHeuristicsP));
      }
    }
  }