in config/ogdl/src/main/java/org/apache/shiro/config/ogdl/ReflectionBuilder.java [750:780]
protected void applyProperty(Object object, String propertyName, String stringValue) {
Object value;
if (NULL_VALUE_TOKEN.equals(stringValue)) {
value = null;
} else if (EMPTY_STRING_VALUE_TOKEN.equals(stringValue)) {
value = StringUtils.EMPTY_STRING;
} else if (isIndexedPropertyAssignment(propertyName)) {
String checked = checkForNullOrEmptyLiteral(stringValue);
value = resolveValue(checked);
} else if (isTypedProperty(object, propertyName, Set.class)) {
value = toSet(stringValue);
} else if (isTypedProperty(object, propertyName, Map.class)) {
value = toMap(stringValue);
} else if (isTypedProperty(object, propertyName, List.class)) {
value = toList(stringValue);
} else if (isTypedProperty(object, propertyName, Collection.class)) {
value = toCollection(stringValue);
} else if (isTypedProperty(object, propertyName, byte[].class)) {
value = toBytes(stringValue);
} else if (isTypedProperty(object, propertyName, ByteSource.class)) {
byte[] bytes = toBytes(stringValue);
value = ByteSource.Util.bytes(bytes);
} else {
String checked = checkForNullOrEmptyLiteral(stringValue);
value = resolveValue(checked);
}
applyProperty(object, propertyName, value);
}