}
}
private <T> Class<?> getType(final T data, final String methodName) throws ODataNotFoundException {
if (data == null) {
throw new ODataNotFoundException(ODataHttpException.COMMON);
}
Class<?> type = data.getClass();
for (final String method : methodName.split("\\.", -1)) {
try {
type = type.getMethod(method).getReturnType();
if (type.isPrimitive()) {
if (type == boolean.class) {
type = Boolean.class;
} else if (type == byte.class) {
type = Byte.class;
} else if (type == short.class) {
type = Short.class;
} else if (type == int.class) {
type = Integer.class;
} else if (type == long.class) {
type = Long.class;
} else if (type == float.class) {
type = Float.class;
} else if (type == double.class) {
type = Double.class;
}
}
} catch (final SecurityException e) {
throw new ODataNotFoundException(ODataHttpException.COMMON, e);
} catch (final NoSuchMethodException e) {
throw new ODataNotFoundException(ODataHttpException.COMMON, e);
}
}
return type;
}