private void handleNavigationProperties() throws UriSyntaxException, UriNotMatchingException, EdmException {
final Matcher matcher = NAVIGATION_SEGMENT_PATTERN.matcher(currentPathSegment);
if (!matcher.matches()) {
throw new UriNotMatchingException(UriNotMatchingException.MATCHPROBLEM.addContent(currentPathSegment));
}
final String navigationPropertyName = percentDecode(matcher.group(1));
final String keyPredicateName = matcher.group(2);
final String emptyParentheses = matcher.group(3);
final EdmTyped property = uriResult.getTargetEntitySet().getEntityType().getProperty(navigationPropertyName);
if (property == null) {
throw new UriNotMatchingException(UriNotMatchingException.PROPERTYNOTFOUND.addContent(navigationPropertyName));
}
switch (property.getType().getKind()) {
case SIMPLE:
case COMPLEX: