diff --git a/src/main/java/de/gultsch/common/MiniUri.java b/src/main/java/de/gultsch/common/MiniUri.java index 79c78b549b496c67b0646122ddf08206fdba2e7e..60eb7c29ad7b40b41f36646b0e14ca7d56d935d5 100644 --- a/src/main/java/de/gultsch/common/MiniUri.java +++ b/src/main/java/de/gultsch/common/MiniUri.java @@ -5,9 +5,10 @@ import androidx.annotation.NonNull; import com.google.common.base.MoreObjects; import com.google.common.base.Splitter; import com.google.common.base.Strings; -import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableMultimap; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; +import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Locale; @@ -21,7 +22,7 @@ public class MiniUri { private final String scheme; private final String authority; private final String path; - private final Map parameter; + private final Map> parameter; public MiniUri(final String uri) { this.raw = uri; @@ -63,8 +64,9 @@ public class MiniUri { }; } - private static Map parseParameters(final String query, final char separator) { - final ImmutableMap.Builder builder = new ImmutableMap.Builder<>(); + private static Map> parseParameters( + final String query, final char separator) { + final var builder = new ImmutableMultimap.Builder(); for (final String pair : Splitter.on(separator).split(query)) { final String[] parts = pair.split("=", 2); if (parts.length == 0) { @@ -81,7 +83,7 @@ public class MiniUri { builder.put(key, EMPTY_STRING); } } - return builder.build(); + return builder.build().asMap(); } @NonNull @@ -123,7 +125,7 @@ public class MiniUri { return Uri.parse(this.raw); } - public Map getParameter() { + public Map> getParameter() { return this.parameter; } }