code: private void generateNames(Set<Property> props, Set<String> reservedNames) {
      nameGenerator.reset(reservedNames, "", reservedFirstCharacters, reservedNonFirstCharacters);
      for (Property p : props) {
        if (generatePseudoNames) {
          p.newName = "$" + p.oldName + "$";
        } else {
          // If we haven't already given this property a reusable name.
          if (p.newName == null) {
            p.newName = nameGenerator.generateNextName();
          }
        }
        reservedNames.add(p.newName);
      }
    }
docs: Generates new names for properties.
  
  @param props Properties to generate new names for
  @param reservedNames A set of names to which properties should not be
  renamed