docs: public static FileSystemLayout create(String root) {
  
          // THORN-2178: Check if a System property has been set to a specific implementation class.
          String implClassName = System.getProperty(CUSTOM_LAYOUT_CLASS);
          if (implClassName != null) {
              implClassName = implClassName.trim();
              if (!implClassName.isEmpty()) {
                  FileSystemLayout layout = null;
                  // Attempt to load the specified class implementation.
                  ClassLoader loader = Thread.currentThread().getContextClassLoader();
                  try {
                      Class<?> clazz = loader.loadClass(implClassName);
                      // Check if clazz is an implementation of FileSystemLayout or not.
                      if (FileSystemLayout.class.isAssignableFrom(clazz)) {
                          Class<? extends FileSystemLayout> implClazz = clazz.asSubclass(FileSystemLayout.class);
                          // Check if we have an appropriate constructor or not.
                          Constructor<? extends FileSystemLayout> ctor = implClazz.getDeclaredConstructor(String.class);
                          layout = ctor.newInstance(root);
                      } else {
                          String msg = String.format("%s does not subclass %s", implClassName, FileSystemLayout.class.getName());
                          LOG.warn(SwarmMessages.MESSAGES.invalidFileSystemLayoutProvided(msg));
                      }
                  } catch (ReflectiveOperationException e) {
                      Throwable cause = e.getCause();
                      String msg = String.format("Unable to instantiate layout class (%s) due to: %s", implClassName,
                                                 cause != null ? cause.getMessage() : e.getMessage());
                      LOG.warn(SwarmMessages.MESSAGES.invalidFileSystemLayoutProvided(msg));
                      LOG.debug(SwarmMessages.MESSAGES.invalidFileSystemLayoutProvided(msg), e);
                      throw SwarmMessages.MESSAGES.cannotIdentifyFileSystemLayout(msg);
                  }
  
                  if (layout != null) {
                      return layout;
                  }
              } else {
                  LOG.warn(SwarmMessages.MESSAGES.invalidFileSystemLayoutProvided("Implementation class name is empty."));
              }
          }
  
          String mavenBuildFile = resolveMavenBuildFileName();
  
          if (Files.exists(Paths.get(root, mavenBuildFile))) {
              return new MavenFileSystemLayout(root);
          } else if (Files.exists(Paths.get(root, BUILD_GRADLE))) {
              return new GradleFileSystemLayout(root);
          }
  
          throw SwarmMessages.MESSAGES.cannotIdentifyFileSystemLayout(root);
      }