Class AbstractServiceClassNameBuilder<T>

java.lang.Object
com.fathzer.plugin.loader.commons.AbstractServiceClassNameBuilder<T>
Type Parameters:
T - The context's class
All Implemented Interfaces:
ClassNameBuilder<T>
Direct Known Subclasses:
ServiceClassNameBuilder, ServiceClassNameBuilder

public abstract class AbstractServiceClassNameBuilder<T> extends Object implements ClassNameBuilder<T>
An abstract ClassNameBuilder that retrieves the class names in the same way as ServiceLoader.
  • Constructor Details

    • AbstractServiceClassNameBuilder

      public AbstractServiceClassNameBuilder()
  • Method Details

    • getServiceFilePath

      protected String getServiceFilePath(Class<?> serviceClass)
      Gets the service definition file path for a service class.
      Parameters:
      serviceClass - The service to search
      Returns:
      a String
    • getBufferedReader

      protected BufferedReader getBufferedReader(InputStream in)
      Gets a BufferedReader on an inputStream.
      Parameters:
      in - The inputStream;
      Returns:
      a BufferedReader.
    • toClassNames

      protected Set<String> toClassNames(Stream<String> lines)
      Converts the lines of a service definition file to a Set of implementation class names.
      Parameters:
      lines - The lines of a service definition file.
      Returns:
      a Set.