in core/src/main/java/org/apache/calcite/avatica/ConnectionProperty.java [80:100]
public boolean valid(Object defaultValue, Class clazz) {
switch (this) {
case BOOLEAN:
return clazz == Boolean.class
&& (defaultValue == null || defaultValue instanceof Boolean);
case NUMBER:
return Number.class.isAssignableFrom(clazz)
&& (defaultValue == null || defaultValue instanceof Number);
case STRING:
return clazz == String.class
&& (defaultValue == null || defaultValue instanceof String);
case PLUGIN:
return clazz != null
&& (defaultValue == null || defaultValue instanceof String);
case ENUM:
return Enum.class.isAssignableFrom(clazz)
&& (defaultValue == null || clazz.isInstance(defaultValue));
default:
throw new AssertionError();
}
}