1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.student.common.util;
17
18 import org.kuali.student.common.util.ModPropertyPlaceholderConfigurer.PlaceholderResolvingStringValueResolver;
19 import org.springframework.beans.factory.config.BeanDefinitionVisitor;
20 import org.springframework.beans.factory.config.TypedStringValue;
21 import org.springframework.util.StringValueResolver;
22
23 public class ModBeanDefinitionVisitor extends BeanDefinitionVisitor {
24
25 PlaceholderResolvingStringValueResolver valueResolver;
26
27 public ModBeanDefinitionVisitor(StringValueResolver valueResolver) {
28 super(valueResolver);
29 this.valueResolver=(PlaceholderResolvingStringValueResolver) valueResolver;
30 }
31
32
33 @Override
34 protected Object resolveValue(Object value) {
35 value = super.resolveValue(value);
36 String strValue = null;
37
38 if(value instanceof String){
39 strValue=(String)value;
40 }else if(value instanceof TypedStringValue){
41 strValue=((TypedStringValue)value).getValue();
42 }
43
44 if(strValue!=null&&strValue.startsWith("$[") && strValue.endsWith("]")){
45 value = valueResolver.resolvePropertyValue(strValue.substring(2, strValue.length()-1));
46 }
47
48 return value;
49 }
50
51 }