test_class.file: core/src/test/java/org/wso2/msf4j/util/QueryStringDecoderUtilTest.java
test_class.identifier: QueryStringDecoderUtilTest
test_case.body: @Test
      public void testUrlDecoding() throws Exception {
          final String caffe = new String(
                  // "Caffé" but instead of putting the literal E-acute in the
                  // source file, we directly use the UTF-8 encoding so as to
                  // not rely on the platform's default encoding (not portable).
                  new byte[]{'C', 'a', 'f', 'f', (byte) 0xC3, (byte) 0xA9},
                  "UTF-8");
          final String[] tests = {
                  // Encoded   ->   Decoded or error message substring
                  "", "",
                  "foo", "foo",
                  "f%%b", "f%b",
                  "f+o", "f o",
                  "f++", "f  ",
                  "fo%", "unterminated escape sequence",
                  "%42", "B",
                  "%5f", "_",
                  "f%4", "partial escape sequence",
                  "%x2", "invalid escape sequence `%x2' at index 0 of: %x2",
                  "%4x", "invalid escape sequence `%4x' at index 0 of: %4x",
                  "Caff%C3%A9", caffe,
          };
          for (int i = 0; i < tests.length; i += 2) {
              final String encoded = tests[i];
              final String expected = tests[i + 1];
              try {
                  final String decoded = QueryStringDecoderUtil.decodeComponent(encoded);
                  assertEquals(expected, decoded);
              } catch (IllegalArgumentException e) {
                  assertTrue("String " + e.getMessage() + "\" does not contain \"" + expected + '"',
                          e.getMessage().contains(expected));
              }
          }
      }
test_case.class_method_signature: QueryStringDecoderUtilTest.testUrlDecoding()
test_case.full_signature: @Test public void testUrlDecoding()
test_case.identifier: testUrlDecoding
test_case.invocations: decodeComponent assertEquals assertTrue getMessage contains getMessage
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testUrlDecoding()
focal_class.declarator: DEFAULT_MAX_PARAMS = 1024
focal_class.modifier: private static final
focal_class.original_string: private static final int DEFAULT_MAX_PARAMS = 1024;
focal_class.type: int
focal_class.var_name: DEFAULT_MAX_PARAMS
focal_class.declarator: charset
focal_class.modifier: private final
focal_class.original_string: private final Charset charset;
focal_class.type: Charset
focal_class.var_name: charset
focal_class.declarator: uri
focal_class.modifier: private final
focal_class.original_string: private final String uri;
focal_class.type: String
focal_class.var_name: uri
focal_class.declarator: hasPath
focal_class.modifier: private final
focal_class.original_string: private final boolean hasPath;
focal_class.type: boolean
focal_class.var_name: hasPath
focal_class.declarator: maxParams
focal_class.modifier: private final
focal_class.original_string: private final int maxParams;
focal_class.type: int
focal_class.var_name: maxParams
focal_class.declarator: path
focal_class.modifier: private
focal_class.original_string: private String path;
focal_class.type: String
focal_class.var_name: path
focal_class.declarator: params
focal_class.modifier: private
focal_class.original_string: private Map<String, List<String>> params;
focal_class.type: Map<String, List<String>>
focal_class.var_name: params
focal_class.declarator: nParams
focal_class.modifier: private
focal_class.original_string: private int nParams;
focal_class.type: int
focal_class.var_name: nParams
focal_class.file: core/src/main/java/org/wso2/msf4j/util/QueryStringDecoderUtil.java
focal_class.identifier: QueryStringDecoderUtil
focal_class.class_method_signature: QueryStringDecoderUtil.QueryStringDecoderUtil(String uri)
focal_class.full_signature: public  QueryStringDecoderUtil(String uri)
focal_class.identifier: QueryStringDecoderUtil
focal_class.modifiers: public
focal_class.parameters: (String uri)
focal_class.signature:  QueryStringDecoderUtil(String uri)
focal_class.class_method_signature: QueryStringDecoderUtil.QueryStringDecoderUtil(String uri, boolean hasPath)
focal_class.full_signature: public  QueryStringDecoderUtil(String uri, boolean hasPath)
focal_class.identifier: QueryStringDecoderUtil
focal_class.modifiers: public
focal_class.parameters: (String uri, boolean hasPath)
focal_class.signature:  QueryStringDecoderUtil(String uri, boolean hasPath)
focal_class.class_method_signature: QueryStringDecoderUtil.QueryStringDecoderUtil(String uri, Charset charset)
focal_class.full_signature: public  QueryStringDecoderUtil(String uri, Charset charset)
focal_class.identifier: QueryStringDecoderUtil
focal_class.modifiers: public
focal_class.parameters: (String uri, Charset charset)
focal_class.signature:  QueryStringDecoderUtil(String uri, Charset charset)
focal_class.class_method_signature: QueryStringDecoderUtil.QueryStringDecoderUtil(String uri, Charset charset, boolean hasPath)
focal_class.full_signature: public  QueryStringDecoderUtil(String uri, Charset charset, boolean hasPath)
focal_class.identifier: QueryStringDecoderUtil
focal_class.modifiers: public
focal_class.parameters: (String uri, Charset charset, boolean hasPath)
focal_class.signature:  QueryStringDecoderUtil(String uri, Charset charset, boolean hasPath)
focal_class.class_method_signature: QueryStringDecoderUtil.QueryStringDecoderUtil(String uri, Charset charset, boolean hasPath, int maxParams)
focal_class.full_signature: public  QueryStringDecoderUtil(String uri, Charset charset, boolean hasPath, int maxParams)
focal_class.identifier: QueryStringDecoderUtil
focal_class.modifiers: public
focal_class.parameters: (String uri, Charset charset, boolean hasPath, int maxParams)
focal_class.signature:  QueryStringDecoderUtil(String uri, Charset charset, boolean hasPath, int maxParams)
focal_class.class_method_signature: QueryStringDecoderUtil.QueryStringDecoderUtil(URI uri)
focal_class.full_signature: public  QueryStringDecoderUtil(URI uri)
focal_class.identifier: QueryStringDecoderUtil
focal_class.modifiers: public
focal_class.parameters: (URI uri)
focal_class.signature:  QueryStringDecoderUtil(URI uri)
focal_class.class_method_signature: QueryStringDecoderUtil.QueryStringDecoderUtil(URI uri, Charset charset)
focal_class.full_signature: public  QueryStringDecoderUtil(URI uri, Charset charset)
focal_class.identifier: QueryStringDecoderUtil
focal_class.modifiers: public
focal_class.parameters: (URI uri, Charset charset)
focal_class.signature:  QueryStringDecoderUtil(URI uri, Charset charset)
focal_class.class_method_signature: QueryStringDecoderUtil.QueryStringDecoderUtil(URI uri, Charset charset, int maxParams)
focal_class.full_signature: public  QueryStringDecoderUtil(URI uri, Charset charset, int maxParams)
focal_class.identifier: QueryStringDecoderUtil
focal_class.modifiers: public
focal_class.parameters: (URI uri, Charset charset, int maxParams)
focal_class.signature:  QueryStringDecoderUtil(URI uri, Charset charset, int maxParams)
focal_class.class_method_signature: QueryStringDecoderUtil.uri()
focal_class.full_signature: public String uri()
focal_class.identifier: uri
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String uri()
focal_class.class_method_signature: QueryStringDecoderUtil.path()
focal_class.full_signature: public String path()
focal_class.identifier: path
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String path()
focal_class.class_method_signature: QueryStringDecoderUtil.parameters()
focal_class.full_signature: public Map<String, List<String>> parameters()
focal_class.identifier: parameters
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Map<String, List<String>>
focal_class.signature: Map<String, List<String>> parameters()
focal_class.class_method_signature: QueryStringDecoderUtil.decodeParams(String s)
focal_class.full_signature: private void decodeParams(String s)
focal_class.identifier: decodeParams
focal_class.modifiers: private
focal_class.parameters: (String s)
focal_class.return: void
focal_class.signature: void decodeParams(String s)
focal_class.class_method_signature: QueryStringDecoderUtil.addParam(Map<String, List<String>> params, String name, String value)
focal_class.full_signature: private boolean addParam(Map<String, List<String>> params, String name, String value)
focal_class.identifier: addParam
focal_class.modifiers: private
focal_class.parameters: (Map<String, List<String>> params, String name, String value)
focal_class.return: boolean
focal_class.signature: boolean addParam(Map<String, List<String>> params, String name, String value)
focal_class.class_method_signature: QueryStringDecoderUtil.decodeComponent(final String s)
focal_class.full_signature: public static String decodeComponent(final String s)
focal_class.identifier: decodeComponent
focal_class.modifiers: public static
focal_class.parameters: (final String s)
focal_class.return: String
focal_class.signature: String decodeComponent(final String s)
focal_class.class_method_signature: QueryStringDecoderUtil.decodeComponent(final String s, final Charset charset)
focal_class.full_signature: public static String decodeComponent(final String s, final Charset charset)
focal_class.identifier: decodeComponent
focal_class.modifiers: public static
focal_class.parameters: (final String s, final Charset charset)
focal_class.return: String
focal_class.signature: String decodeComponent(final String s, final Charset charset)
focal_class.class_method_signature: QueryStringDecoderUtil.decodeHexNibble(final char c)
focal_class.full_signature: private static char decodeHexNibble(final char c)
focal_class.identifier: decodeHexNibble
focal_class.modifiers: private static
focal_class.parameters: (final char c)
focal_class.return: char
focal_class.signature: char decodeHexNibble(final char c)
focal_method.body: public static String decodeComponent(final String s) {
          return decodeComponent(s, Charset.forName("UTF-8"));
      }
focal_method.class_method_signature: QueryStringDecoderUtil.decodeComponent(final String s)
focal_method.full_signature: public static String decodeComponent(final String s)
focal_method.identifier: decodeComponent
focal_method.invocations: decodeComponent forName
focal_method.modifiers: public static
focal_method.parameters: (final String s)
focal_method.return: String
focal_method.signature: String decodeComponent(final String s)