- introspector = loader.introspectorFromName(part);
- if (introspector != null) {
-
- validatePath(isRelative, validNamespaces, previousObj, part, introspector);
-
- Set<String> keys = introspector.getKeys();
- if (keys.size() > 0) {
- MultivaluedMap<String, String> uriKeys = new MultivaluedHashMap<>();
- i++;
- boolean isLastPart = i == parts.length;
- if (isLastPart && queryParams != null) {
- uriKeys = queryParams;
- } else {
- for (String key : keys) {
- part = UriUtils.decode(parts[i], "UTF-8");
- introspector.setValue(key, part);
- // skip this for further processing
- i++;
- }
- }
-
- p.processObject(introspector, type, uriKeys);
- type = EdgeType.TREE;
- } else if (introspector.isContainer()) {
- boolean isFinalContainer = i == parts.length - 1;
- MultivaluedMap<String, String> uriKeys =
- isFinalContainer && queryParams != null
- ? queryParams
- : new MultivaluedHashMap<>();
- p.processContainer(introspector, type, uriKeys, isFinalContainer);
- i++;
+ Introspector introspector = loader.introspectorFromName(part);
+ validatePath(isRelative, previousObj, part, introspector);
+ Set<String> keys = introspector.getKeys();
+ if (keys.size() > 0) {
+ MultivaluedMap<String, String> uriKeys = new MultivaluedHashMap<>();
+ boolean isLastPart = i+1 == parts.length;
+ if (isLastPart && queryParams != null) {
+ uriKeys = queryParams;