@Override public Object put(KEY key, Object value) { if (value != null) { if (!key.getFieldType().isInstance(value)) { throw new IllegalArgumentException( "Can not set Parameters Property '" + key.getFieldName() + "' because of type mismatch. The required type is " + key.getFieldType()); } if (value instanceof Number && !key.checkRange((Number) value)) { throw new IllegalArgumentException( "Can not set Parameters Property '" + key.getFieldName() + "' because of value '" + value + "' not in range. Range[" + key.getMin() + "-" + key.getMax() + "]"); } } return super.put(key, value); }