public Attribute set(Map<String, String> map, ValueVisitor visitor) {
		Set<String> keys = map.keySet();
		Class<?> clazz = getClass();
		for (String key : keys) {
			String value = map.get(key);
			try {
				Field field = SpringReflectionUtils.findField(clazz, key);
				field.setAccessible(true);
				field.set(this, visitor.target(field.getType(), value, null));
			} catch (IllegalArgumentException e) {
				throw ExceptionFactory.wrapException("argument exception!", e);
			} catch (IllegalAccessException e) {
				throw ExceptionFactory
						.wrapException("permission exception!", e);
			}
		}
		return this;
	}