1616import java .util .Collection ;
1717
1818import org .microbean .assign .Matcher ;
19- import org .microbean .assign .Qualifiers ;
2019
2120import org .microbean .attributes .Attributes ;
2221
23- import static org .microbean .assign .Qualifiers .anyAndDefaultQualifiers ;
24- import static org .microbean .assign .Qualifiers .defaultQualifier ;
22+ import static java .util .Objects .requireNonNull ;
2523
2624/**
2725 * A {@link Matcher} encapsulating <a
3533public class BeanQualifiersMatcher implements Matcher <Collection <? extends Attributes >, Collection <? extends Attributes >> {
3634
3735
36+ /*
37+ * Instance fields.
38+ */
39+
40+
41+ private final Qualifiers qualifiers ;
42+
43+
3844 /*
3945 * Constructors.
4046 */
4147
4248
4349 /**
4450 * Creates a new {@link BeanQualifiersMatcher}.
51+ *
52+ * @param qualifiers a {@link Qualifiers}; must not be {@code null}
53+ *
54+ * @exception NullPointerException if {@code qualifiers} is {@code null}
4555 */
46- public BeanQualifiersMatcher () {
56+ public BeanQualifiersMatcher (final Qualifiers qualifiers ) {
4757 super ();
58+ this .qualifiers = requireNonNull (qualifiers , "qualifiers" );
4859 }
4960
5061
@@ -58,10 +69,10 @@ public BeanQualifiersMatcher() {
5869 * org.microbean.assign.Qualifiers#qualifiers(Collection) qualifiers present} in {@code receiverAttributes} is
5970 * {@linkplain Collection#isEmpty() empty} and either the collection of {@linkplain
6071 * org.microbean.assign.Qualifiers#qualifiers(Collection) qualifiers present} in {@code payloadAttributes} is also
61- * empty or contains the {@linkplain org.microbean.assign .Qualifiers#defaultQualifier() default qualifier}, or (b) if
72+ * empty or contains the {@linkplain org.microbean.bean .Qualifiers#defaultQualifier() default qualifier}, or (b) if
6273 * the collection of {@linkplain org.microbean.assign.Qualifiers#qualifiers(Collection) qualifiers present} in {@code
6374 * payloadAttributes} {@linkplain Collection#isEmpty() is empty} or the return value of {@link
64- * org.microbean.assign .Qualifiers#anyAndDefaultQualifiers()} {@linkplain Collection#containsAll(Collection) contains
75+ * org.microbean.bean .Qualifiers#anyAndDefaultQualifiers()} {@linkplain Collection#containsAll(Collection) contains
6576 * all} of the {@linkplain org.microbean.assign.Qualifiers#qualifiers(Collection) qualifiers present} in {@code
6677 * receiverAttributes}, or (c) if the collection of {@linkplain org.microbean.assign.Qualifiers#qualifiers(Collection)
6778 * qualifiers present} in {@code payloadAttributes} {@linkplain Collection#containsAll(Collection) contains all} of
@@ -76,10 +87,10 @@ public BeanQualifiersMatcher() {
7687 * org.microbean.assign.Qualifiers#qualifiers(Collection) qualifiers present} in {@code receiverAttributes} is
7788 * {@linkplain Collection#isEmpty() empty} and either the collection of {@linkplain
7889 * org.microbean.assign.Qualifiers#qualifiers(Collection) qualifiers present} in {@code payloadAttributes} is also
79- * empty or contains the {@linkplain org.microbean.assign .Qualifiers#defaultQualifier() default qualifier}, or (b) if
80- * the collection of {@linkplain org.microbean.assign .Qualifiers#qualifiers(Collection) qualifiers present} in {@code
90+ * empty or contains the {@linkplain org.microbean.bean .Qualifiers#defaultQualifier() default qualifier}, or (b) if
91+ * the collection of {@linkplain org.microbean.bean .Qualifiers#qualifiers(Collection) qualifiers present} in {@code
8192 * payloadAttributes} {@linkplain Collection#isEmpty() is empty} or the return value of {@link
82- * org.microbean.assign .Qualifiers#anyAndDefaultQualifiers()} {@linkplain Collection#containsAll(Collection) contains
93+ * org.microbean.bean .Qualifiers#anyAndDefaultQualifiers()} {@linkplain Collection#containsAll(Collection) contains
8394 * all} of the {@linkplain org.microbean.assign.Qualifiers#qualifiers(Collection) qualifiers present} in {@code
8495 * receiverAttributes}, or (c) if the collection of {@linkplain org.microbean.assign.Qualifiers#qualifiers(Collection)
8596 * qualifiers present} in {@code payloadAttributes} {@linkplain Collection#containsAll(Collection) contains all} of
@@ -106,8 +117,8 @@ public final boolean test(final Collection<? extends Attributes> receiverAttribu
106117 // "If an injection point declares no qualifier, the injection point has exactly one qualifier, the default
107118 // qualifier @Default."
108119 return
109- receiverQualifiers .isEmpty () ? payloadQualifiers .isEmpty () || payloadQualifiers .contains (defaultQualifier ()) :
110- (payloadQualifiers .isEmpty () ? anyAndDefaultQualifiers () : payloadQualifiers ).containsAll (receiverQualifiers );
120+ receiverQualifiers .isEmpty () ? payloadQualifiers .isEmpty () || payloadQualifiers .contains (this . qualifiers . defaultQualifier ()) :
121+ (payloadQualifiers .isEmpty () ? this . qualifiers . anyAndDefaultQualifiers () : payloadQualifiers ).containsAll (receiverQualifiers );
111122 }
112123
113124 /**
@@ -125,9 +136,12 @@ public final boolean test(final Collection<? extends Attributes> receiverAttribu
125136 * Collection} that are deemed to be qualifiers; never {@code null}
126137 *
127138 * @exception NullPointerException if {@code as} is {@code null}
139+ *
140+ * @deprecated Pass a different {@link Qualifiers} to the {@link #BeanQualifiersMatcher(Qualifiers)} constructor.
128141 */
142+ @ Deprecated (forRemoval = true )
129143 protected Collection <? extends Attributes > qualifiers (final Collection <? extends Attributes > as ) {
130- return Qualifiers .qualifiers (as );
144+ return this . qualifiers .qualifiers (as );
131145 }
132146
133147}
0 commit comments