in odata2-annotation-processor/annotation-processor-core/src/main/java/org/apache/olingo/odata2/annotation/processor/core/datasource/BeanPropertyAccess.java [112:149]
private <T, V> void setValue(final T data, final String methodName, final V value)
throws ODataNotFoundException {
try {
boolean found = false;
for (final Method method : Arrays.asList(data.getClass().getMethods())) {
if (method.getName().equals(methodName)) {
found = true;
final Class<?> type = method.getParameterTypes()[0];
if (value == null) {
if (type.equals(byte.class) || type.equals(short.class) || type.equals(int.class)
|| type.equals(long.class) || type.equals(char.class)) {
method.invoke(data, 0);
} else if (type.equals(float.class) || type.equals(double.class)) {
method.invoke(data, 0.0);
} else if (type.equals(boolean.class)) {
method.invoke(data, false);
} else {
method.invoke(data, value);
}
} else {
method.invoke(data, value);
}
break;
}
}
if (!found) {
throw new ODataNotFoundException(null);
}
} catch (SecurityException e) {
throw new ODataNotFoundException(null, e);
} catch (IllegalArgumentException e) {
throw new ODataNotFoundException(null, e);
} catch (IllegalAccessException e) {
throw new ODataNotFoundException(null, e);
} catch (InvocationTargetException e) {
throw new ODataNotFoundException(null, e);
}
}