code: public void addCustomMappings(BuilderContext builderContext) {
          DefinitionRepository definitionRepository = builderContext.getDefinitionRepository();
  
          List<ClassRef> refs = new ArrayList<ClassRef>();
          for (TypeDef typeDef : builderContext.getDefinitionRepository().getDefinitions()) {
              refs.add(typeDef.toInternalReference());
          }
  
          //It's best to have predictable order, so that we can generate uniform code.
          Collections.sort(refs, new Comparator<ClassRef>() {
              @Override
              public int compare(ClassRef o1, ClassRef o2) {
                  return o1.getFullyQualifiedName().compareTo(o2.getFullyQualifiedName());
              }
          });
  
          for (ClassRef ref : refs) {
              String key = ref.getName();
  
              if (BuilderUtils.isBuildable(ref)) {
  
                  //Add the builder
                  String builderKey = key + "Builder";
                  if (!definitionRepository.customMappingExists(builderKey)) {
                      definitionRepository.putCustomMapping(builderKey, ref.getDefinition().getFullyQualifiedName() + "Builder");
                  }
  
                  //Add the editable
                  String editableKey = "Editable" + key;
                  if (!definitionRepository.customMappingExists(editableKey)) {
                      definitionRepository.putCustomMapping(editableKey, "Editable" + ref.getDefinition().getFullyQualifiedName());
                  }
  
                  //Add the builder
                  String fluentKey = key + "Fluent";
                  if (!definitionRepository.customMappingExists(fluentKey)) {
                      definitionRepository.putCustomMapping(fluentKey, ref.getDefinition().getFullyQualifiedName() + "Fluent");
                  }
  
                  //Add the builder
                  String fluentImplKey = key + "FluentImpl";
                  if (!definitionRepository.customMappingExists(fluentImplKey)) {
                      definitionRepository.putCustomMapping(fluentImplKey, ref.getDefinition().getFullyQualifiedName() + "FluentImpl");
                  }
              }
          }
      }
docs: Create a mapping from class name to {@link ClassRef}.
  @param builderContext    The builder context.