Class TypeArgumentQualifier<T>

  • Type Parameters:
    T - The type
    All Implemented Interfaces:
    Qualifier<T>
    Direct Known Subclasses:
    ClosestTypeArgumentQualifier

    @Internal
    public class TypeArgumentQualifier<T>
    extends java.lang.Object
    implements Qualifier<T>
    A Qualifier that qualifies beans by generic type arguments.
    Since:
    1.0
    • Method Detail

      • reduce

        public <BT extends BeanType<T>> java.util.stream.Stream<BT> reduce​(java.lang.Class<T> beanType,
                                                                           java.util.stream.Stream<BT> candidates)
        Specified by:
        reduce in interface Qualifier<T>
        Type Parameters:
        BT - The bean type subclass
        Parameters:
        beanType - The bean type
        candidates - The candidates
        Returns:
        The qualified candidate or null it it cannot be qualified
      • getTypeArguments

        public java.lang.Class[] getTypeArguments()
        Returns:
        The type arguments
      • areTypesCompatible

        protected boolean areTypesCompatible​(java.util.List<java.lang.Class> classes)
        Parameters:
        classes - An array of classes
        Returns:
        Whether the types are compatible
      • getTypeArguments

        protected <BT extends BeanType<T>> java.util.List<java.lang.Class> getTypeArguments​(java.lang.Class<T> beanType,
                                                                                            BT candidate)
        Type Parameters:
        BT - The bean type subclass
        Parameters:
        beanType - The bean type
        candidate - The candidate
        Returns:
        The list of type arguments
      • areTypesCompatible

        public static boolean areTypesCompatible​(java.lang.Class[] typeArguments,
                                                 java.util.List<java.lang.Class> classes)
        Are the given types compatible.
        Parameters:
        typeArguments - The type arguments
        classes - The classes to check for alignments
        Returns:
        True if they are
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • toString

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