Class ResolvedInstances<T>

  • Type Parameters:
    T - The type of the instances
    All Implemented Interfaces:
    java.lang.Iterable<T>, java.util.function.Supplier<T>, javax.inject.Provider<T>, InstanceProvider<T>

    public class ResolvedInstances<T>
    extends java.lang.Object
    implements InstanceProvider<T>
    Represents the discovered matches for a call to InstanceLocator.select(TypeQualifier)
    Since:
    19.3.0
    Author:
    cdivilly
  • <section role="region">
    • Method Detail

      • get

        public T get()
        Description copied from interface: InstanceProvider
        Retrieve the first available instance
        Specified by:
        get in interface InstanceProvider<T>
        Specified by:
        get in interface javax.inject.Provider<T>
        Specified by:
        get in interface java.util.function.Supplier<T>
        Returns:
        the first available instance
      • hasMultiple

        public boolean hasMultiple()
        Description copied from interface: InstanceProvider
        Determines if there is more than one available implementation for the required type and qualifiers
        Specified by:
        hasMultiple in interface InstanceProvider<T>
        Returns:
        true if there are multiple providers, false otherwise
      • isUnsatisfied

        public boolean isUnsatisfied()
        Description copied from interface: InstanceProvider
        Determines if there is no available implementation for the required type and qualifiers. If this method returns true, then calling InstanceProvider.get() will raise a RuntimeException
        Specified by:
        isUnsatisfied in interface InstanceProvider<T>
        Returns:
        true if there is no provider, false otherwise
      • iterator

        public java.util.Iterator<T> iterator()
        Description copied from interface: InstanceProvider
        When a service has multiple providers (which can be determined by calling InstanceProvider.isAmbiguous()) this iterator enumerates each of the available providers
        Specified by:
        iterator in interface InstanceProvider<T>
        Specified by:
        iterator in interface java.lang.Iterable<T>
        Returns:
        The set of available providers
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • matches

        @SafeVarargs
        public static <T> ResolvedInstances<T> matches​(InstanceProvider<T> firstMatch,
                                                       InstanceProvider<T>... subsequentMatches)
        Concatenates a series of matches together
        Type Parameters:
        T - The type of the instances
        Parameters:
        firstMatch - The first set of matches
        subsequentMatches - The remainder of the matches
        Returns:
        ResolvedInstances instance
      • matches

        public static <T> ResolvedInstances<T> matches​(TypeQualifier<T> qualifier,
                                                       java.util.Collection<java.lang.Throwable> errors,
                                                       java.lang.Iterable<T> matches)
        Produce a ResolvedInstances using the specified TypeQualifier and set of instances
        Type Parameters:
        T - The type of the instances
        Parameters:
        errors - Any errors encountered in resolving the instances
        qualifier - The constraints used to match the instances
        matches - The matches
        Returns:
        ResolvedInstances instance
    </section>