public void setProperty(Object obj, Object value) {
        if (setMethod != null) {
            try {
                setMethod.invoke(obj, value);
                return;
            } catch (Exception e) {
                throw new FieldAccessException(e);
            }
        }
        if (field != null) {
            try {
                field.set(obj, value);
                return;
            } catch (IllegalAccessException e) {
                throw new FieldAccessException(e);
            }
        }
        throw new FieldAccessException(String.format("Can't find accessor of set property %s", name));
    }