static Optional setterPropertyWriterFor()

in src/main/java/com/amazon/rdsdata/client/SetterPropertyWriter.java [35:55]


    static Optional<PropertyWriter> setterPropertyWriterFor(Object instance, String fieldName) {
        val instanceType = instance.getClass();
        val setterName = buildSetterName(fieldName);

        val possibleSetterMethods = Stream.of(instanceType.getMethods())
            .filter(method -> method.getName().equals(setterName))
            .filter(SetterPropertyWriter::isNotStatic)
            .filter(SetterPropertyWriter::hasOneParameter)
            .filter(SetterPropertyWriter::isPublic)
            .collect(toList());

        if (possibleSetterMethods.size() > 1) {
            throw MappingException.ambiguousSetter(fieldName, possibleSetterMethods);
        }

        if (possibleSetterMethods.size() == 0) {
            return Optional.empty();
        }

        return Optional.of(new SetterPropertyWriter(instance, possibleSetterMethods.get(0), fieldName));
    }