Interface QuaternaryServiceDescriptor<T>

Type Parameters:
T - the type of the value provided by the described service
All Superinterfaces:
ServiceDescriptor<T>
All Known Subinterfaces:
QuaternaryServiceDescriptor.Provider<T>

public interface QuaternaryServiceDescriptor<T> extends ServiceDescriptor<T>
Describes a service by its name, provided value type, and dynamic name resolution mechanism.
Author:
Paul Ferraro
  • Method Details

    • resolve

      default Map.Entry<String,String[]> resolve(String greatGrandparent, String grandparent, String parent, String child)
      Resolves the dynamic name the service using the specified segments.
      Parameters:
      greatGrandparent - the first dynamic segment
      grandparent - the second dynamic segment
      parent - the third dynamic segment
      child - the fourth dynamic segment
      Returns:
      a tuple containing the resolved name and dynamic segments, or null if segments are not resolvable.
    • asType

      default <U extends T> QuaternaryServiceDescriptor<U> asType(Class<U> type)
      Description copied from interface: ServiceDescriptor
      Returns a sub-class view of this service descriptor.
      Specified by:
      asType in interface ServiceDescriptor<T>
      Type Parameters:
      U - the subclass type
      Parameters:
      type - a sub-class of this descriptor's type
      Returns:
      a sub-class view of this service descriptor.
    • of

      static <T> QuaternaryServiceDescriptor<T> of(String name, Class<T> type)
      Creates a quaternary service descriptor with the specified name and type.
      Type Parameters:
      T - the service type
      Parameters:
      name - the service name
      type - the service type
      Returns:
      a service descriptor
    • of

      static <T> QuaternaryServiceDescriptor<T> of(String name, TernaryServiceDescriptor<T> defaultDescriptor)
      Creates a quaternary service descriptor with the specified name and default service descriptor.
      Type Parameters:
      T - the service type
      Parameters:
      name - the service name
      defaultDescriptor - the service descriptor used to resolve an undefined dynamic child name
      Returns:
      a service descriptor