11package com .apicatalog .multicodec .codec ;
22
33import java .util .Arrays ;
4- import java .util .HashMap ;
4+ import java .util .EnumMap ;
55import java .util .Map ;
66import java .util .Optional ;
77import java .util .function .Function ;
@@ -30,7 +30,7 @@ public final class MulticodecRegistry {
3030 /**
3131 * Mapping from codec tag to the codecs within that category.
3232 */
33- private static final Map <Tag , Map <Long , ? extends Multicodec >> TAGS ;
33+ private static final Map <Tag , Map <Long , Multicodec >> TAGS ;
3434
3535 /**
3636 * Mapping from codec numeric code to its {@link Multicodec} definition across
@@ -44,7 +44,7 @@ public final class MulticodecRegistry {
4444 private static final MulticodecRegistry INSTANCE ;
4545
4646 static {
47- TAGS = new HashMap <>();
47+ TAGS = new EnumMap <>(Tag . class );
4848 TAGS .put (Tag .Cid , CidCodec .ALL );
4949 TAGS .put (Tag .Hash , HashCodec .ALL );
5050 TAGS .put (Tag .Key , KeyCodec .ALL );
@@ -64,14 +64,14 @@ public final class MulticodecRegistry {
6464 INSTANCE = new MulticodecRegistry (CODECS );
6565 }
6666
67- private final Map <Long , ? extends Multicodec > codecs ;
67+ private final Map <Long , Multicodec > codecs ;
6868
6969 /**
7070 * Creates a new registry instance backed by the provided codec mapping.
7171 *
7272 * @param codecs a map of numeric codes to codec definitions
7373 */
74- protected MulticodecRegistry (final Map <Long , ? extends Multicodec > codecs ) {
74+ protected MulticodecRegistry (final Map <Long , Multicodec > codecs ) {
7575 this .codecs = codecs ;
7676 }
7777
@@ -110,7 +110,7 @@ public static final MulticodecRegistry getInstance(final Multicodec... codecs) {
110110 *
111111 * @return map of numeric code to codec definition
112112 */
113- public static final Map <Long , ? extends Multicodec > provided () {
113+ public static final Map <Long , Multicodec > provided () {
114114 return CODECS ;
115115 }
116116
@@ -120,7 +120,7 @@ public static final MulticodecRegistry getInstance(final Multicodec... codecs) {
120120 * @param tags one or more codec tags to filter by
121121 * @return map of numeric code to codec definition for matching tags
122122 */
123- public static final Map <Long , ? extends Multicodec > provided (final Tag ... tags ) {
123+ public static final Map <Long , Multicodec > provided (final Tag ... tags ) {
124124 if (tags == null || tags .length == 0 ) {
125125 throw new IllegalArgumentException ("At least one tag must be provided." );
126126 }
@@ -149,7 +149,7 @@ public final Optional<Multicodec> getCodec(final long code) {
149149 *
150150 * @return map of numeric code to codec definition
151151 */
152- public Map <Long , ? extends Multicodec > codecs () {
152+ public Map <Long , Multicodec > codecs () {
153153 return codecs ;
154154 }
155155}
0 commit comments