code: public static Set<TypeDef> executablesToInterfaces(DslContext context, Collection<ExecutableElement> elements) {
          Map<String, TypeDef> byName = new LinkedHashMap<String, TypeDef>();
          for (ExecutableElement current : elements) {
              TypeDef clazz = executableToInterface(context, current);
              InterfaceName interfaceName = current.getAnnotation(InterfaceName.class);
              String name = interfaceName != null ? clazz.getPackageName() + "." + interfaceName.value() : clazz.getFullyQualifiedName();
              if (byName.containsKey(name)) {
                  TypeDef other = byName.remove(name);
                  byName.put(name, Merge.CLASSES.apply(new TypeDef[]{other, clazz}));
              } else {
                  byName.put(name, clazz);
              }
          }
          return new LinkedHashSet<TypeDef>(byName.values());
      }
docs: Convert a {@link Collection} of {@link javax.lang.model.element.ExecutableElement}s to a {@link java.util.Set} of {@link io.sundr.codegen.model.TypeDef}es.
  
  @param context           The context of the operation.
  @param elements          The target elements.
  @return                  A set of {@link io.sundr.codegen.model.TypeDef} that describes the interfaces.