diff --git a/README.md b/README.md
index 48ec9ee..331d600 100644
--- a/README.md
+++ b/README.md
@@ -27,7 +27,7 @@ dependency:
org.microbean
microbean-assign
- 0.0.10
+ 0.0.11
```
diff --git a/src/main/java/org/microbean/assign/AttributedElement.java b/src/main/java/org/microbean/assign/AttributedElement.java
index 803cb13..7e78bcb 100644
--- a/src/main/java/org/microbean/assign/AttributedElement.java
+++ b/src/main/java/org/microbean/assign/AttributedElement.java
@@ -20,7 +20,6 @@
import java.lang.constant.MethodHandleDesc;
import java.util.List;
-import java.util.Objects;
import java.util.Optional;
import javax.lang.model.element.Element;
diff --git a/src/main/java/org/microbean/assign/Qualifiers.java b/src/main/java/org/microbean/assign/Qualifiers.java
index 9058cc7..f767bb0 100644
--- a/src/main/java/org/microbean/assign/Qualifiers.java
+++ b/src/main/java/org/microbean/assign/Qualifiers.java
@@ -21,124 +21,45 @@
import org.microbean.attributes.Attributes;
/**
- * A utility class for working with commonly-used qualifiers.
+ * A utility class for working with qualifiers.
+ *
+ *
This class is currently not used by other classes in this package. It may be useful in a variety of dependency
+ * injection systems.
*
* @author Laird Nelson
*
* @see Attributes
*/
-public final class Qualifiers {
-
- private static final Attributes QUALIFIER = Attributes.of("Qualifier");
-
- private static final List QUALIFIERS = List.of(QUALIFIER);
+public class Qualifiers {
- private static final Attributes ANY_QUALIFIER = Attributes.of("Any", QUALIFIERS);
- private static final List ANY_QUALIFIERS = List.of(ANY_QUALIFIER);
-
- private static final Attributes DEFAULT_QUALIFIER = Attributes.of("Default", QUALIFIERS);
-
- private static final List DEFAULT_QUALIFIERS = List.of(DEFAULT_QUALIFIER);
-
- private static final List ANY_AND_DEFAULT_QUALIFIERS = List.of(ANY_QUALIFIER, DEFAULT_QUALIFIER);
+ /*
+ * Static fields.
+ */
- private static final Attributes PRIMORDIAL_QUALIFIER = Attributes.of("Primordial", QUALIFIERS);
- private static final List PRIMORDIAL_QUALIFIERS = List.of(PRIMORDIAL_QUALIFIER);
+ private static final Attributes QUALIFIER = Attributes.of("Qualifier");
- private Qualifiers() {
- super();
- }
+ private static final List QUALIFIERS = List.of(QUALIFIER);
- /**
- * Returns an unmodifiable {@link List} consisting solely of the unattributed any qualifier and the
- * default qualifier.
- *
- * @return an unmodifiable {@link List} consisting solely of the unattributed any qualifier and the default qualifier;
- * never {@code null}
- *
- * @see #anyQualifier()
- *
- * @see #defaultQualifier()
- */
- public static final List anyAndDefaultQualifiers() {
- return ANY_AND_DEFAULT_QUALIFIERS;
- }
- /**
- * Returns the unattributed any qualifier.
- *
- * @return the any qualifier; never {@code null}
- *
- * @see #anyQualifiers()
+ /*
+ * Constructors.
*/
- public static final Attributes anyQualifier() {
- return ANY_QUALIFIER;
- }
- /**
- * Returns {@code true} if and only if the supplied {@link Attributes} {@linkplain Attributes#equals(Object) is equal
- * to} the unattributed {@linkplain #anyQualifier() any qualifier}.
- *
- * @param a an {@link Attributes}; must not be {@code null}
- *
- * @return {@code true} if and only if the supplied {@link Attributes} {@linkplain Attributes#equals(Object) is equal
- * to} the unattributed {@linkplain #anyQualifier() any qualifier}
- *
- * @exception NullPointerException if {@code a} is {@code null}
- */
- public static final boolean anyQualifier(final Attributes a) {
- return ANY_QUALIFIER == a || anyQualifier().equals(a) && qualifier(a);
- }
/**
- * Returns an immutable {@link List} consisting solely of the unattributed any qualifier.
- *
- * @return an immutable {@link List}; never {@code null}
- *
- * @see #anyQualifier()
+ * Creates a new {@link Qualifiers}.
*/
- public static final List anyQualifiers() {
- return ANY_QUALIFIERS;
+ public Qualifiers() {
+ super();
}
- /**
- * Returns the default qualifier.
- *
- * @return the default qualifier; never {@code null}
- *
- * @see #defaultQualifiers()
- */
- public static final Attributes defaultQualifier() {
- return DEFAULT_QUALIFIER;
- }
- /**
- * Returns {@code true} if and only if the supplied {@link Attributes} {@linkplain
- * Attributes#equals(Object) is equal to} the {@linkplain #defaultQualifier() default qualifier}.
- *
- * @param a an {@link Attributes}; must not be {@code null}
- *
- * @return {@code true} if and only if the supplied {@link Attributes} {@linkplain
- * Attributes#equals(Object) is equal to} the {@linkplain #defaultQualifier() default qualifier}
- *
- * @exception NullPointerException if {@code a} is {@code null}
+ /*
+ * Instance methods.
*/
- public static final boolean defaultQualifier(final Attributes a) {
- return DEFAULT_QUALIFIER == a || defaultQualifier().equals(a) && qualifier(a);
- }
- /**
- * Returns an immutable {@link List} consisting solely of the default qualifier.
- *
- * @return an immutable {@link List}; never {@code null}
- *
- * @see #defaultQualifier()
- */
- public static final List defaultQualifiers() {
- return DEFAULT_QUALIFIERS;
- }
/**
* Returns an {@link Attributes} that is {@linkplain Attributes#equals(Object) equal to} the supplied {@link
@@ -153,11 +74,10 @@ public static final List defaultQualifiers() {
*
* @exception NullPointerException if {@code a} is {@code null}
*/
- public static final Attributes normalize(final Attributes a) {
+ public Attributes normalize(final Attributes a) {
return switch (a) {
case null -> throw new NullPointerException("a");
- case Attributes q when defaultQualifier(q) -> defaultQualifier();
- case Attributes q when QUALIFIER.equals(q) -> qualifier();
+ case Attributes q when this.qualifier().equals(q) -> this.qualifier();
default -> a;
};
}
@@ -175,63 +95,26 @@ public static final Attributes normalize(final Attributes a) {
*
* @exception NullPointerException if {@code list} is {@code null}
*/
- public static final List normalize(final List list) {
+ public List normalize(final List list) {
return switch (list.size()) {
case 0 -> List.of();
- case 1 -> list.equals(defaultQualifiers()) ? defaultQualifiers() : List.copyOf(list);
+ case 1 -> list.equals(this.qualifiers()) ? this.qualifiers() : List.copyOf(list);
default -> {
final List l = new ArrayList<>(list.size());
for (final Attributes a : list) {
- l.add(normalize(a));
+ l.add(this.normalize(a));
}
yield Collections.unmodifiableList(l);
}
};
}
- /**
- * Returns the primordial qualifier.
- *
- * @return the primordial qualifier; never {@code null}
- *
- * @see #primordialQualifiers()
- */
- public static final Attributes primordialQualifier() {
- return PRIMORDIAL_QUALIFIER;
- }
-
- /**
- * Returns {@code true} if and only if the supplied {@link Attributes} {@linkplain
- * Attributes#equals(Object) is equal to} the {@linkplain #primordialQualifier() primordial qualifier}.
- *
- * @param a an {@link Attributes}; must not be {@code null}
- *
- * @return {@code true} if and only if the supplied {@link Attributes} {@linkplain
- * Attributes#equals(Object) is equal to} the {@linkplain #primordialQualifier() primordial qualifier}
- *
- * @exception NullPointerException if {@code a} is {@code null}
- */
- public static final boolean primordialQualifier(final Attributes a) {
- return PRIMORDIAL_QUALIFIER == a || primordialQualifier().equals(a) && qualifier(a);
- }
-
- /**
- * Returns an immutable {@link List} consisting solely of the primordial qualifier.
- *
- * @return an immutable {@link List}; never {@code null}
- *
- * @see #primordialQualifier()
- */
- public static final List primordialQualifiers() {
- return PRIMORDIAL_QUALIFIERS;
- }
-
/**
* Returns the qualifier (meta-) qualifier.
*
* @return the qualifier (meta-) qualifier; never {@code null}
*/
- public static final Attributes qualifier() {
+ public Attributes qualifier() {
return QUALIFIER;
}
@@ -246,8 +129,8 @@ public static final Attributes qualifier() {
*
* @exception NullPointerException if {@code q} is {@code null}
*/
- public static final boolean qualifier(final Attributes q) {
- return q.attributes().contains(qualifier());
+ public boolean qualifier(final Attributes q) {
+ return q.attributes().contains(this.qualifier());
}
/**
@@ -257,7 +140,7 @@ public static final boolean qualifier(final Attributes q) {
*
* @see #qualifier()
*/
- public static final List qualifiers() {
+ public List qualifiers() {
return QUALIFIERS;
}
@@ -272,16 +155,14 @@ public static final List qualifiers() {
*
* @exception NullPointerException if {@code c} is {@code null}
*/
- public static final List qualifiers(final Collection extends Attributes> c) {
+ public List qualifiers(final Collection extends Attributes> c) {
return switch (c) {
case Collection> c0 when c0.isEmpty() -> List.of();
- case Collection> c0 when c0.equals(defaultQualifiers()) -> defaultQualifiers();
- case Collection> c0 when c0.equals(anyAndDefaultQualifiers()) -> anyAndDefaultQualifiers();
- default ->{
+ default -> {
final ArrayList list = new ArrayList<>(c.size());
for (final Attributes a : c) {
- if (qualifier(a)) {
- list.add(normalize(a));
+ if (this.qualifier(a)) {
+ list.add(this.normalize(a));
}
}
list.trimToSize();
diff --git a/src/main/java/org/microbean/assign/SpecializationComparator.java b/src/main/java/org/microbean/assign/SpecializationComparator.java
index e6e5ae3..e52568a 100644
--- a/src/main/java/org/microbean/assign/SpecializationComparator.java
+++ b/src/main/java/org/microbean/assign/SpecializationComparator.java
@@ -14,12 +14,13 @@
package org.microbean.assign;
import java.util.Comparator;
-import java.util.Objects;
import javax.lang.model.type.TypeMirror;
import org.microbean.construct.Domain;
+import static java.util.Objects.requireNonNull;
+
/**
* A {@link Comparator} of {@link TypeMirror}s that establishes a partial order on its arguments, enforcing
* only that more specialized types precede less specialized ones.
@@ -43,7 +44,7 @@ public final class SpecializationComparator implements Comparator {
*/
public SpecializationComparator(final Domain domain) {
super();
- this.domain = Objects.requireNonNull(domain, "domain");
+ this.domain = requireNonNull(domain, "domain");
}
/**