test_class.file: base/lang/src/test/java/leap/lang/http/QueryStringParserTest.java
test_class.identifier: QueryStringParserTest
test_class.superclass: extends TestBase
test_case.body: @Test
      public void testEmptyValue() {
          Map<String, List<String>> params = QueryStringParser.parseMap("a=&b=&c&d");
          assertEquals(4, params.size());
          assertEquals("", params.get("a").get(0));
          assertEquals("", params.get("b").get(0));
          assertEquals("", params.get("c").get(0));
          assertEquals("", params.get("d").get(0));
      }
test_case.class_method_signature: QueryStringParserTest.testEmptyValue()
test_case.full_signature: @Test public void testEmptyValue()
test_case.identifier: testEmptyValue
test_case.invocations: parseMap assertEquals size assertEquals get get assertEquals get get assertEquals get get assertEquals get get
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testEmptyValue()
focal_class.file: base/lang/src/main/java/leap/lang/http/QueryStringParser.java
focal_class.identifier: QueryStringParser
focal_class.class_method_signature: QueryStringParser.parse(String s)
focal_class.full_signature: public static QueryString parse(String s)
focal_class.identifier: parse
focal_class.modifiers: public static
focal_class.parameters: (String s)
focal_class.return: QueryString
focal_class.signature: QueryString parse(String s)
focal_class.class_method_signature: QueryStringParser.parseMap(String s)
focal_class.full_signature: public static Map<String, List<String>> parseMap(String s)
focal_class.identifier: parseMap
focal_class.modifiers: public static
focal_class.parameters: (String s)
focal_class.return: Map<String, List<String>>
focal_class.signature: Map<String, List<String>> parseMap(String s)
focal_class.class_method_signature: QueryStringParser.parse(String s, Map<String, List<String>> params)
focal_class.full_signature: private static void parse(String s, Map<String, List<String>> params)
focal_class.identifier: parse
focal_class.modifiers: private static
focal_class.parameters: (String s, Map<String, List<String>> params)
focal_class.return: void
focal_class.signature: void parse(String s, Map<String, List<String>> params)
focal_class.class_method_signature: QueryStringParser.addParam(Map<String, List<String>> params, String name, String value)
focal_class.full_signature: private static boolean addParam(Map<String, List<String>> params, String name, String value)
focal_class.identifier: addParam
focal_class.modifiers: private static
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: QueryStringParser.QueryStringParser()
focal_class.full_signature: protected  QueryStringParser()
focal_class.identifier: QueryStringParser
focal_class.modifiers: protected
focal_class.parameters: ()
focal_class.signature:  QueryStringParser()
focal_method.body: public static Map<String, List<String>> parseMap(String s) {
          if(null == s || s.length() == 0) {
              return Collections.emptyMap();
          }
              
          Map<String, List<String>> params = new LinkedHashMap<>();
          
          parse(s, params);
          
          return params;
      }
focal_method.class_method_signature: QueryStringParser.parseMap(String s)
focal_method.full_signature: public static Map<String, List<String>> parseMap(String s)
focal_method.identifier: parseMap
focal_method.invocations: length emptyMap parse
focal_method.modifiers: public static
focal_method.parameters: (String s)
focal_method.return: Map<String, List<String>>
focal_method.signature: Map<String, List<String>> parseMap(String s)