test_class.declarator: thrown = ExpectedException.none()
test_class.modifier: @Rule
      public
test_class.original_string: @Rule
      public ExpectedException thrown = ExpectedException.none();
test_class.type: ExpectedException
test_class.var_name: thrown
test_class.file: everrest-core/src/test/java/org/everrest/core/impl/uri/UriComponentTest.java
test_class.identifier: UriComponentTest
test_case.body: @Test
      public void parsesAndDecodeQueryString() {
          String queryString = "q1=to%20be%20or%20not%20to%20be&q2=foo&q2=%D0%9F%D1%80%D0%B8%D0%B2%D1%96%D1%82";
          MultivaluedMapImpl expected = new MultivaluedMapImpl();
          expected.add("q1", "to be or not to be");
          expected.addAll("q2", "foo", "\u041f\u0440\u0438\u0432\u0456\u0442");
  
          MultivaluedMap<String, String> result = parseQueryString(queryString, true);
          assertEquals(expected, result);
      }
test_case.class_method_signature: UriComponentTest.parsesAndDecodeQueryString()
test_case.full_signature: @Test public void parsesAndDecodeQueryString()
test_case.identifier: parsesAndDecodeQueryString
test_case.invocations: add addAll parseQueryString assertEquals
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void parsesAndDecodeQueryString()
focal_class.declarator: SCHEME = 0
focal_class.modifier: public static final
focal_class.original_string: public static final int SCHEME = 0;
focal_class.type: int
focal_class.var_name: SCHEME
focal_class.declarator: USER_INFO = 1
focal_class.modifier: public static final
focal_class.original_string: public static final int USER_INFO = 1;
focal_class.type: int
focal_class.var_name: USER_INFO
focal_class.declarator: HOST = 2
focal_class.modifier: public static final
focal_class.original_string: public static final int HOST = 2;
focal_class.type: int
focal_class.var_name: HOST
focal_class.declarator: PORT = 3
focal_class.modifier: public static final
focal_class.original_string: public static final int PORT = 3;
focal_class.type: int
focal_class.var_name: PORT
focal_class.declarator: PATH_SEGMENT = 4
focal_class.modifier: public static final
focal_class.original_string: public static final int PATH_SEGMENT = 4;
focal_class.type: int
focal_class.var_name: PATH_SEGMENT
focal_class.declarator: PATH = 5
focal_class.modifier: public static final
focal_class.original_string: public static final int PATH = 5;
focal_class.type: int
focal_class.var_name: PATH
focal_class.declarator: QUERY = 6
focal_class.modifier: public static final
focal_class.original_string: public static final int QUERY = 6;
focal_class.type: int
focal_class.var_name: QUERY
focal_class.declarator: FRAGMENT = 7
focal_class.modifier: public static final
focal_class.original_string: public static final int FRAGMENT = 7;
focal_class.type: int
focal_class.var_name: FRAGMENT
focal_class.declarator: SSP = 8
focal_class.modifier: public static final
focal_class.original_string: public static final int SSP = 8;
focal_class.type: int
focal_class.var_name: SSP
focal_class.declarator: MATRIX_PARAM = 9
focal_class.modifier: public static final
focal_class.original_string: public static final int MATRIX_PARAM = 9;
focal_class.type: int
focal_class.var_name: MATRIX_PARAM
focal_class.declarator: QUERY_STRING = 10
focal_class.modifier: public static final
focal_class.original_string: public static final int QUERY_STRING = 10;
focal_class.type: int
focal_class.var_name: QUERY_STRING
focal_class.declarator: PERCENT = "%25"
focal_class.modifier: public static final
focal_class.original_string: public static final String PERCENT = "%25";
focal_class.type: String
focal_class.var_name: PERCENT
focal_class.declarator: HEX_DIGITS = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}
focal_class.modifier: private static final
focal_class.original_string: private static final char[] HEX_DIGITS = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
focal_class.type: char[]
focal_class.var_name: HEX_DIGITS
focal_class.declarator: ENCODED = new char[11][128][3]
focal_class.modifier: private static final
focal_class.original_string: private static final char[][][] ENCODED = new char[11][128][3];
focal_class.type: char[][][]
focal_class.var_name: ENCODED
focal_class.declarator: LEGAL = new int[11][128]
focal_class.modifier: private static final
focal_class.original_string: private static final int[][] LEGAL = new int[11][128];
focal_class.type: int[][]
focal_class.var_name: LEGAL
focal_class.declarator: UTF8 = Charset.forName("UTF-8")
focal_class.modifier: private static final
focal_class.original_string: private static final Charset UTF8 = Charset.forName("UTF-8");
focal_class.type: Charset
focal_class.var_name: UTF8
focal_class.file: everrest-core/src/main/java/org/everrest/core/impl/uri/UriComponent.java
focal_class.identifier: UriComponent
focal_class.class_method_signature: UriComponent.fillTable(int[] array, char begin, char end)
focal_class.full_signature: private static void fillTable(int[] array, char begin, char end)
focal_class.identifier: fillTable
focal_class.modifiers: private static
focal_class.parameters: (int[] array, char begin, char end)
focal_class.return: void
focal_class.signature: void fillTable(int[] array, char begin, char end)
focal_class.class_method_signature: UriComponent.set(int[] src, int[] dest)
focal_class.full_signature: private static void set(int[] src, int[] dest)
focal_class.identifier: set
focal_class.modifiers: private static
focal_class.parameters: (int[] src, int[] dest)
focal_class.return: void
focal_class.signature: void set(int[] src, int[] dest)
focal_class.class_method_signature: UriComponent.normalize(URI uri)
focal_class.full_signature: public static URI normalize(URI uri)
focal_class.identifier: normalize
focal_class.modifiers: public static
focal_class.parameters: (URI uri)
focal_class.return: URI
focal_class.signature: URI normalize(URI uri)
focal_class.class_method_signature: UriComponent.normalize(String path)
focal_class.full_signature: private static String normalize(String path)
focal_class.identifier: normalize
focal_class.modifiers: private static
focal_class.parameters: (String path)
focal_class.return: String
focal_class.signature: String normalize(String path)
focal_class.class_method_signature: UriComponent.isCompletePathSeg(String segment, String path)
focal_class.full_signature: private static boolean isCompletePathSeg(String segment, String path)
focal_class.identifier: isCompletePathSeg
focal_class.modifiers: private static
focal_class.parameters: (String segment, String path)
focal_class.return: boolean
focal_class.signature: boolean isCompletePathSeg(String segment, String path)
focal_class.class_method_signature: UriComponent.encode(String str, int component, boolean containsUriParams)
focal_class.full_signature: public static String encode(String str, int component, boolean containsUriParams)
focal_class.identifier: encode
focal_class.modifiers: public static
focal_class.parameters: (String str, int component, boolean containsUriParams)
focal_class.return: String
focal_class.signature: String encode(String str, int component, boolean containsUriParams)
focal_class.class_method_signature: UriComponent.validateUriComponent(String str, int component, boolean containsUriParams)
focal_class.full_signature: public static String validateUriComponent(String str, int component, boolean containsUriParams)
focal_class.identifier: validateUriComponent
focal_class.modifiers: public static
focal_class.parameters: (String str, int component, boolean containsUriParams)
focal_class.return: String
focal_class.signature: String validateUriComponent(String str, int component, boolean containsUriParams)
focal_class.class_method_signature: UriComponent.isUriComponentContainsValidCharacters(int component, String str)
focal_class.full_signature: public static boolean isUriComponentContainsValidCharacters(int component, String str)
focal_class.identifier: isUriComponentContainsValidCharacters
focal_class.modifiers: public static
focal_class.parameters: (int component, String str)
focal_class.return: boolean
focal_class.signature: boolean isUriComponentContainsValidCharacters(int component, String str)
focal_class.class_method_signature: UriComponent.recognizeEncode(String str, int component, boolean containsUriParams)
focal_class.full_signature: public static String recognizeEncode(String str, int component, boolean containsUriParams)
focal_class.identifier: recognizeEncode
focal_class.modifiers: public static
focal_class.parameters: (String str, int component, boolean containsUriParams)
focal_class.return: String
focal_class.signature: String recognizeEncode(String str, int component, boolean containsUriParams)
focal_class.class_method_signature: UriComponent._encode(String str, int component, boolean containsUriParams, boolean recognizeEncoded)
focal_class.full_signature: private static String _encode(String str, int component, boolean containsUriParams, boolean recognizeEncoded)
focal_class.identifier: _encode
focal_class.modifiers: private static
focal_class.parameters: (String str, int component, boolean containsUriParams, boolean recognizeEncoded)
focal_class.return: String
focal_class.signature: String _encode(String str, int component, boolean containsUriParams, boolean recognizeEncoded)
focal_class.class_method_signature: UriComponent.find(String chars, int begin, int end, char stopChar)
focal_class.full_signature: private static int find(String chars, int begin, int end, char stopChar)
focal_class.identifier: find
focal_class.modifiers: private static
focal_class.parameters: (String chars, int begin, int end, char stopChar)
focal_class.return: int
focal_class.signature: int find(String chars, int begin, int end, char stopChar)
focal_class.class_method_signature: UriComponent.decode(String str, int component)
focal_class.full_signature: public static String decode(String str, int component)
focal_class.identifier: decode
focal_class.modifiers: public static
focal_class.parameters: (String str, int component)
focal_class.return: String
focal_class.signature: String decode(String str, int component)
focal_class.class_method_signature: UriComponent.needEncode(char ch, int component)
focal_class.full_signature: private static boolean needEncode(char ch, int component)
focal_class.identifier: needEncode
focal_class.modifiers: private static
focal_class.parameters: (char ch, int component)
focal_class.return: boolean
focal_class.signature: boolean needEncode(char ch, int component)
focal_class.class_method_signature: UriComponent.addUTF8Encoded(char c, StringBuilder sb)
focal_class.full_signature: private static void addUTF8Encoded(char c, StringBuilder sb)
focal_class.identifier: addUTF8Encoded
focal_class.modifiers: private static
focal_class.parameters: (char c, StringBuilder sb)
focal_class.return: void
focal_class.signature: void addUTF8Encoded(char c, StringBuilder sb)
focal_class.class_method_signature: UriComponent.percentDecode(String str, int p, ByteArrayOutputStream out)
focal_class.full_signature: private static int percentDecode(String str, int p, ByteArrayOutputStream out)
focal_class.identifier: percentDecode
focal_class.modifiers: private static
focal_class.parameters: (String str, int p, ByteArrayOutputStream out)
focal_class.return: int
focal_class.signature: int percentDecode(String str, int p, ByteArrayOutputStream out)
focal_class.class_method_signature: UriComponent.checkHexCharacters(String s, int p)
focal_class.full_signature: public static boolean checkHexCharacters(String s, int p)
focal_class.identifier: checkHexCharacters
focal_class.modifiers: public static
focal_class.parameters: (String s, int p)
focal_class.return: boolean
focal_class.signature: boolean checkHexCharacters(String s, int p)
focal_class.class_method_signature: UriComponent.getHexCharacter(String str, int p)
focal_class.full_signature: private static char getHexCharacter(String str, int p)
focal_class.identifier: getHexCharacter
focal_class.modifiers: private static
focal_class.parameters: (String str, int p)
focal_class.return: char
focal_class.signature: char getHexCharacter(String str, int p)
focal_class.class_method_signature: UriComponent.parsePathSegments(String path, boolean decode)
focal_class.full_signature: public static List<PathSegment> parsePathSegments(String path, boolean decode)
focal_class.identifier: parsePathSegments
focal_class.modifiers: public static
focal_class.parameters: (String path, boolean decode)
focal_class.return: List<PathSegment>
focal_class.signature: List<PathSegment> parsePathSegments(String path, boolean decode)
focal_class.class_method_signature: UriComponent.parseQueryString(String rawQuery, boolean decode)
focal_class.full_signature: public static MultivaluedMap<String, String> parseQueryString(String rawQuery, boolean decode)
focal_class.identifier: parseQueryString
focal_class.modifiers: public static
focal_class.parameters: (String rawQuery, boolean decode)
focal_class.return: MultivaluedMap<String, String>
focal_class.signature: MultivaluedMap<String, String> parseQueryString(String rawQuery, boolean decode)
focal_class.class_method_signature: UriComponent.resolve(URI baseUri, URI resolvingUri)
focal_class.full_signature: public static URI resolve(URI baseUri, URI resolvingUri)
focal_class.identifier: resolve
focal_class.modifiers: public static
focal_class.parameters: (URI baseUri, URI resolvingUri)
focal_class.return: URI
focal_class.signature: URI resolve(URI baseUri, URI resolvingUri)
focal_class.class_method_signature: UriComponent.UriComponent()
focal_class.full_signature: private  UriComponent()
focal_class.identifier: UriComponent
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.signature:  UriComponent()
focal_method.body: public static MultivaluedMap<String, String> parseQueryString(String rawQuery, boolean decode) {
          MultivaluedMap<String, String> result = new MultivaluedMapImpl();
          if (!(rawQuery == null || rawQuery.isEmpty())) {
              int p = 0;
              int n = 0;
              while (n < rawQuery.length()) {
                  n = rawQuery.indexOf('&', p);
                  if (n < 0) {
                      n = rawQuery.length();
                  }
  
                  String pair = rawQuery.substring(p, n);
                  if (!pair.isEmpty()) {
                      String name;
                      String value;
                      int eq = pair.indexOf('=');
                      if (eq < 0) {
                          // no value
                          name = pair;
                          value = "";
                      } else {
                          name = pair.substring(0, eq);
                          value = pair.substring(eq + 1);
                      }
  
                      result.add(decode ? decode(name, QUERY) : name, decode ? decode(value, QUERY) : value);
                  }
                  p = n + 1;
              }
          }
          return result;
      }
focal_method.class_method_signature: UriComponent.parseQueryString(String rawQuery, boolean decode)
focal_method.full_signature: public static MultivaluedMap<String, String> parseQueryString(String rawQuery, boolean decode)
focal_method.identifier: parseQueryString
focal_method.invocations: isEmpty length indexOf length substring isEmpty indexOf substring substring add decode decode
focal_method.modifiers: public static
focal_method.parameters: (String rawQuery, boolean decode)
focal_method.return: MultivaluedMap<String, String>
focal_method.signature: MultivaluedMap<String, String> parseQueryString(String rawQuery, boolean decode)