diff --git a/pico/api/src/main/java/io/helidon/pico/api/DefaultQualifierAndValue.java b/pico/api/src/main/java/io/helidon/pico/api/DefaultQualifierAndValue.java index 12564bb53e1..3f62b36a712 100644 --- a/pico/api/src/main/java/io/helidon/pico/api/DefaultQualifierAndValue.java +++ b/pico/api/src/main/java/io/helidon/pico/api/DefaultQualifierAndValue.java @@ -50,7 +50,7 @@ protected DefaultQualifierAndValue(Builder b) { */ public static DefaultQualifierAndValue createNamed(String name) { Objects.requireNonNull(name); - return (DefaultQualifierAndValue) builder().typeName(CommonQualifiers.NAMED).value(name).build(); + return builder().typeName(CommonQualifiers.NAMED).value(name).build(); } /** @@ -61,7 +61,7 @@ public static DefaultQualifierAndValue createNamed(String name) { */ public static DefaultQualifierAndValue create(Class qualifierType) { Objects.requireNonNull(qualifierType); - return (DefaultQualifierAndValue) builder().typeName(DefaultTypeName.create(qualifierType)).build(); + return builder().typeName(DefaultTypeName.create(qualifierType)).build(); } /** @@ -73,7 +73,7 @@ public static DefaultQualifierAndValue create(Class qualif */ public static DefaultQualifierAndValue create(Class qualifierType, String val) { Objects.requireNonNull(qualifierType); - return (DefaultQualifierAndValue) builder().typeName(DefaultTypeName.create(qualifierType)).value(val).build(); + return builder().typeName(DefaultTypeName.create(qualifierType)).value(val).build(); } /** @@ -84,7 +84,7 @@ public static DefaultQualifierAndValue create(Class qualif * @return qualifier */ public static DefaultQualifierAndValue create(String qualifierTypeName, String val) { - return (DefaultQualifierAndValue) builder() + return builder() .typeName(DefaultTypeName.createFromTypeName(qualifierTypeName)) .value(val) .build(); @@ -98,7 +98,7 @@ public static DefaultQualifierAndValue create(String qualifierTypeName, String v * @return qualifier */ public static DefaultQualifierAndValue create(TypeName qualifierType, String val) { - return (DefaultQualifierAndValue) builder() + return builder() .typeName(qualifierType) .value(val) .build(); @@ -112,7 +112,7 @@ public static DefaultQualifierAndValue create(TypeName qualifierType, String val * @return qualifier */ public static DefaultQualifierAndValue create(TypeName qualifierType, Map vals) { - return (DefaultQualifierAndValue) builder() + return builder() .typeName(qualifierType) .values(vals) .build(); @@ -162,6 +162,30 @@ public static class Builder extends DefaultAnnotationAndValue.Builder { protected Builder() { } + @Override + public Builder typeName(TypeName val) { + super.typeName(val); + return this; + } + + @Override + public Builder value(String val) { + super.value(val); + return this; + } + + @Override + public Builder values(Map val) { + super.values(val); + return this; + } + + @Override + public Builder type(Class annoType) { + super.type(annoType); + return this; + } + /** * Build the instance. * diff --git a/pico/api/src/test/java/io/helidon/pico/api/DefaultQualifierAndValueTest.java b/pico/api/src/test/java/io/helidon/pico/api/DefaultQualifierAndValueTest.java new file mode 100644 index 00000000000..c8601daf091 --- /dev/null +++ b/pico/api/src/test/java/io/helidon/pico/api/DefaultQualifierAndValueTest.java @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2023 Oracle and/or its affiliates. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.helidon.pico.api; + +import io.helidon.common.types.DefaultAnnotationAndValue; + +import jakarta.inject.Named; +import org.junit.jupiter.api.Test; + +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.MatcherAssert.assertThat; + +class DefaultQualifierAndValueTest { + + @Test + void buildAndCompare() { + DefaultQualifierAndValue qav1 = DefaultQualifierAndValue.builder() + .type(Named.class) + .value("x.y") + .build(); + DefaultAnnotationAndValue qav2 = DefaultQualifierAndValue.builder() + .type(Named.class) + .value("x.y") + .build(); + assertThat(qav1.compareTo(qav2), + is(0)); + } + +}