diff options
Diffstat (limited to 'java/com/google/gerrit/server/UrlEncoded.java')
-rw-r--r-- | java/com/google/gerrit/server/UrlEncoded.java | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/java/com/google/gerrit/server/UrlEncoded.java b/java/com/google/gerrit/server/UrlEncoded.java new file mode 100644 index 0000000000..2b7b6187b7 --- /dev/null +++ b/java/com/google/gerrit/server/UrlEncoded.java @@ -0,0 +1,55 @@ +// Copyright (C) 2009 The Android Open Source Project +// +// 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 com.google.gerrit.server; + +import com.google.gerrit.extensions.restapi.Url; +import java.util.LinkedHashMap; +import java.util.Map; + +public class UrlEncoded extends LinkedHashMap<String, String> { + private static final long serialVersionUID = 1L; + + private String url; + + public UrlEncoded() {} + + public UrlEncoded(String url) { + this.url = url; + } + + @Override + public String toString() { + final StringBuilder buffer = new StringBuilder(); + char separator = 0; + if (url != null) { + separator = '?'; + buffer.append(url); + } + for (Map.Entry<String, String> entry : entrySet()) { + final String key = entry.getKey(); + final String val = entry.getValue(); + if (separator != 0) { + buffer.append(separator); + } + buffer.append(Url.encode(key)); + buffer.append('='); + if (val != null) { + buffer.append(Url.encode(val)); + } + separator = '&'; + } + return buffer.toString(); + } +} |