Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ dependency:
<groupId>org.microbean</groupId>
<artifactId>microbean-bean</artifactId>
<!-- Always check https://central.sonatype.com/artifact/org.microbean/microbean-bean for up-to-date available versions. -->
<version>0.0.21</version>
<version>0.0.22</version>
</dependency>
```

Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@
<dependency>
<groupId>org.microbean</groupId>
<artifactId>microbean-assign</artifactId>
<version>0.0.10</version>
<version>0.0.11</version>
</dependency>

<dependency>
Expand Down
1 change: 1 addition & 0 deletions src/main/java/module-info.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
module org.microbean.bean {

exports org.microbean.bean;
exports org.microbean.bean.model;

requires transitive java.compiler;
requires transitive org.microbean.assign;
Expand Down
5 changes: 5 additions & 0 deletions src/main/java/org/microbean/bean/Bean.java
Original file line number Diff line number Diff line change
Expand Up @@ -65,11 +65,13 @@ public final record Bean<I>(Id id, Factory<I> factory) implements Aggregate, Con
requireNonNull(factory, "factory");
}

@Deprecated(forRemoval = true)
@Override // Ranked
public final boolean alternate() {
return this.id.alternate();
}

// (Convenience.)
@Override // Aggregate
public final SequencedSet<? extends Assignment<?>> assign(final Function<? super AttributedType, ?> r) {
return this.factory.assign(r);
Expand All @@ -89,6 +91,7 @@ public final <X> Bean<X> cast() {
return (Bean<X>)this;
}

// (Convenience.)
@Override // Aggregate
public final SequencedSet<AttributedElement> dependencies() {
return this.factory.dependencies();
Expand Down Expand Up @@ -120,6 +123,8 @@ public final int hashCode() {
return this.id.hashCode();
}

// (Convenience.)
@Deprecated(forRemoval = true)
@Override // Ranked
public final int rank() {
return this.id.rank();
Expand Down
38 changes: 26 additions & 12 deletions src/main/java/org/microbean/bean/BeanQualifiersMatcher.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,10 @@
import java.util.Collection;

import org.microbean.assign.Matcher;
import org.microbean.assign.Qualifiers;

import org.microbean.attributes.Attributes;

import static org.microbean.assign.Qualifiers.anyAndDefaultQualifiers;
import static org.microbean.assign.Qualifiers.defaultQualifier;
import static java.util.Objects.requireNonNull;

/**
* A {@link Matcher} encapsulating <a
Expand All @@ -35,16 +33,29 @@
public class BeanQualifiersMatcher implements Matcher<Collection<? extends Attributes>, Collection<? extends Attributes>> {


/*
* Instance fields.
*/


private final Qualifiers qualifiers;


/*
* Constructors.
*/


/**
* Creates a new {@link BeanQualifiersMatcher}.
*
* @param qualifiers a {@link Qualifiers}; must not be {@code null}
*
* @exception NullPointerException if {@code qualifiers} is {@code null}
*/
public BeanQualifiersMatcher() {
public BeanQualifiersMatcher(final Qualifiers qualifiers) {
super();
this.qualifiers = requireNonNull(qualifiers, "qualifiers");
}


Expand All @@ -58,10 +69,10 @@ public BeanQualifiersMatcher() {
* org.microbean.assign.Qualifiers#qualifiers(Collection) qualifiers present} in {@code receiverAttributes} is
* {@linkplain Collection#isEmpty() empty} and either the collection of {@linkplain
* org.microbean.assign.Qualifiers#qualifiers(Collection) qualifiers present} in {@code payloadAttributes} is also
* empty or contains the {@linkplain org.microbean.assign.Qualifiers#defaultQualifier() default qualifier}, or (b) if
* empty or contains the {@linkplain org.microbean.bean.Qualifiers#defaultQualifier() default qualifier}, or (b) if
* the collection of {@linkplain org.microbean.assign.Qualifiers#qualifiers(Collection) qualifiers present} in {@code
* payloadAttributes} {@linkplain Collection#isEmpty() is empty} or the return value of {@link
* org.microbean.assign.Qualifiers#anyAndDefaultQualifiers()} {@linkplain Collection#containsAll(Collection) contains
* org.microbean.bean.Qualifiers#anyAndDefaultQualifiers()} {@linkplain Collection#containsAll(Collection) contains
* all} of the {@linkplain org.microbean.assign.Qualifiers#qualifiers(Collection) qualifiers present} in {@code
* receiverAttributes}, or (c) if the collection of {@linkplain org.microbean.assign.Qualifiers#qualifiers(Collection)
* qualifiers present} in {@code payloadAttributes} {@linkplain Collection#containsAll(Collection) contains all} of
Expand All @@ -76,10 +87,10 @@ public BeanQualifiersMatcher() {
* org.microbean.assign.Qualifiers#qualifiers(Collection) qualifiers present} in {@code receiverAttributes} is
* {@linkplain Collection#isEmpty() empty} and either the collection of {@linkplain
* org.microbean.assign.Qualifiers#qualifiers(Collection) qualifiers present} in {@code payloadAttributes} is also
* empty or contains the {@linkplain org.microbean.assign.Qualifiers#defaultQualifier() default qualifier}, or (b) if
* the collection of {@linkplain org.microbean.assign.Qualifiers#qualifiers(Collection) qualifiers present} in {@code
* empty or contains the {@linkplain org.microbean.bean.Qualifiers#defaultQualifier() default qualifier}, or (b) if
* the collection of {@linkplain org.microbean.bean.Qualifiers#qualifiers(Collection) qualifiers present} in {@code
* payloadAttributes} {@linkplain Collection#isEmpty() is empty} or the return value of {@link
* org.microbean.assign.Qualifiers#anyAndDefaultQualifiers()} {@linkplain Collection#containsAll(Collection) contains
* org.microbean.bean.Qualifiers#anyAndDefaultQualifiers()} {@linkplain Collection#containsAll(Collection) contains
* all} of the {@linkplain org.microbean.assign.Qualifiers#qualifiers(Collection) qualifiers present} in {@code
* receiverAttributes}, or (c) if the collection of {@linkplain org.microbean.assign.Qualifiers#qualifiers(Collection)
* qualifiers present} in {@code payloadAttributes} {@linkplain Collection#containsAll(Collection) contains all} of
Expand All @@ -106,8 +117,8 @@ public final boolean test(final Collection<? extends Attributes> receiverAttribu
// "If an injection point declares no qualifier, the injection point has exactly one qualifier, the default
// qualifier @Default."
return
receiverQualifiers.isEmpty() ? payloadQualifiers.isEmpty() || payloadQualifiers.contains(defaultQualifier()) :
(payloadQualifiers.isEmpty() ? anyAndDefaultQualifiers() : payloadQualifiers).containsAll(receiverQualifiers);
receiverQualifiers.isEmpty() ? payloadQualifiers.isEmpty() || payloadQualifiers.contains(this.qualifiers.defaultQualifier()) :
(payloadQualifiers.isEmpty() ? this.qualifiers.anyAndDefaultQualifiers() : payloadQualifiers).containsAll(receiverQualifiers);
}

/**
Expand All @@ -125,9 +136,12 @@ public final boolean test(final Collection<? extends Attributes> receiverAttribu
* Collection} that are deemed to be qualifiers; never {@code null}
*
* @exception NullPointerException if {@code as} is {@code null}
*
* @deprecated Pass a different {@link Qualifiers} to the {@link #BeanQualifiersMatcher(Qualifiers)} constructor.
*/
@Deprecated(forRemoval = true)
protected Collection<? extends Attributes> qualifiers(final Collection<? extends Attributes> as) {
return Qualifiers.qualifiers(as);
return this.qualifiers.qualifiers(as);
}

}
Loading