private <P> PropertyWrapper<Field, ?, P> buildPropertyFieldWrapper(Field accessor) { if (isOptional(accessor.getType())) { return new PropertyWrapperDefault<>(Optional.ofNullable(accessor), OptionalValueProcessor.build()); } return new PropertyWrapperDefault<>(Optional.ofNullable(accessor), NoOpsValueProcessor.build()); }
private <P> PropertyWrapper<Method, ?, P> getSetter(final Field field, final List<Method> methods, final Class<BEAN> clazz) { Method setter = null; String setterName = ""; final List<String> validNames = Arrays.asList( FieldDefaultNaming.getDefaultSetterName(field.getName()), FieldDefaultNaming.getDefaultWitherName(field.getName()), field.getName() ); for (final Method method : methods) { if (validNames.contains(method.getName()) && isValidSetter(field, method, clazz)) { setter = method; setterName = method.getName(); break; } } this.logger.debug("setter for property [" + field.getName() + "]: [" + setterName + "]"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ final Optional<Method> optionalSetter = Optional.ofNullable(setter); if (optionalSetter.isPresent() && isOptional(optionalSetter.get().getParameterTypes()[0])) { return new PropertyWrapperDefault<>(optionalSetter, OptionalValueProcessor.build()); } return new PropertyWrapperDefault<>(optionalSetter, NoOpsValueProcessor.build()); }
private <P> PropertyWrapper<Method, ?, P> getGetter(final Field field, final List<Method> methods) { Method getter = null; String getterName = ""; final List<String> validNames = Arrays.asList( FieldDefaultNaming.getDefaultGetterName(field.getName()), FieldDefaultNaming.getDefaultBooleanGetterName(field.getName()), field.getName() ); for (final Method method : methods) { if (validNames.contains(method.getName()) && isValidGetter(field, method)) { getter = method; getterName = method.getName(); break; } } this.logger.debug("getter for property [" + field.getName() + "]: [" + getterName + "]"); final Optional<Method> optionalGetter = Optional.ofNullable(getter); if (optionalGetter.isPresent() && isOptional(optionalGetter.get().getReturnType())) { return new PropertyWrapperDefault<>(optionalGetter, OptionalValueProcessor.build()); } return new PropertyWrapperDefault<>(optionalGetter, NoOpsValueProcessor.build()); }