View Javadoc

1   /**
2    * Copyright 2010 The Kuali Foundation Licensed under the
3    * Educational Community License, Version 2.0 (the "License"); you may
4    * not use this file except in compliance with the License. You may
5    * obtain a copy of the License at
6    *
7    * http://www.osedu.org/licenses/ECL-2.0
8    *
9    * Unless required by applicable law or agreed to in writing,
10   * software distributed under the License is distributed on an "AS IS"
11   * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12   * or implied. See the License for the specific language governing
13   * permissions and limitations under the License.
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  }