@SuppressWarnings("unchecked")
    public void bind(PathInput input, Object value) {
        if (parameter < 0) {
            return;
        }

        if (properties != null) {
            Object object = input.getParameter(parameter);

            if (object instanceof Map) {
                ((Map) object).put(properties, value == null ? null : value.toString());
            } else {
                Property property = Properties.getProperty(object.getClass(), properties);
                if (property != null) {
                    property.setValue(object, Lubricant.apply(value, property.getType()));
                }
            }
        } else {
            input.setParameter(parameter, value);
        }
    }