Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright: (c) 2004-2012 Mayo Foundation for Medical Education and 
   * Research (MFMER). All rights reserved. MAYO, MAYO CLINIC, and the
   * triple-shield Mayo logo are trademarks and service marks of MFMER.
   *
   * Except as contained in the copyright notice above, or as used to identify 
   * MFMER as the author of this software, the trade names, trademarks, service
   * marks, or product names of the copyright holder shall not be used in
   * advertising, promotion or otherwise in connection with this software without
  * prior written authorization of the copyright holder.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
  *      http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 package org.twinkql.result;
 
 
 
 
 import  org.springframework.stereotype.Component;
 
The Class PropertySetter.

Author(s):
Kevin Peterson
 
 @Component
 public class PropertySetter {
 	
Instantiates a new property setter.
 
 	public PropertySetter(){
 		super();
 	}

Instantiates a new property setter.

Parameters:
beanInstantiator the bean instantiator
 
 	public PropertySetter(BeanInstantiator beanInstantiator){
 		super();
 		this. = beanInstantiator;
 	}

Sets the property.

Parameters:
targetObj the target obj
result the result
association the association
tracker the tracker
 
 	public void setProperty(
 			Object targetObj
 			Object result
 			Association association
 			Tracker tracker){
 		String callbackId = association.getCallbackId();
 		String property = association.getBeanProperty();
 		
 		result = this.processModifier(association.getModifier(), result);
 		
 		this.setProperty(targetObjresultpropertycallbackIdtracker);
 	}

Sets the property.

Parameters:
targetObj the target obj
result the result
rowMap the row map
tracker the tracker
 
 	public void setProperty(
 			Object targetObj
			Object result
			RowMap rowMap
			Tracker tracker){
		String callbackId = rowMap.getCallbackId();
		String property = rowMap.getBeanProperty();
		result = this.processModifier(rowMap.getModifier(), result);
		this.setProperty(targetObjresultpropertycallbackIdtracker);
	}

Sets the property.

Parameters:
targetObj the target obj
result the result
property the property
callbackId the callback id
tracker the tracker
	private void setProperty(
			Object targetObj
			Object result
			String property
			String callbackId
			Tracker tracker){
		if(StringUtils.isNotBlank(callbackId)){
			tracker.getCallbackParams().put(callbackIdresult);
		}
		if(StringUtils.isNotBlank(property)){
			property = this.adjustForCollection(targetObjproperty);
			BeanUtil.setPropertyForced(targetObj,
					propertyresult);
		}	
	}

Adjust for collection.

Parameters:
target the target
property the property
Returns:
the string
	private String adjustForCollection(Object targetString property){
		if(StringUtils.countMatches(property"[]") > 1){
			throw new MappingException("Cannot have more than one Collection Indicator ('[]') in a 'property' attribute.");
		}
		String[] parts = StringUtils.split(property'.');
		for(int i=0;i<parts.length;i++){
			String part = parts[i];
			if(StringUtils.endsWith(part"[]")){
				String propertySoFar = 
					StringUtils.removeEnd(StringUtils.join(
						ArrayUtils.subarray(parts, 0, i+1), '.'), "[]");
				Collection<?> collection = (Collection<?>) BeanUtil.getSimplePropertyForced(targetpropertySoFartrue);
				int index = collection.size();
				parts[i] = StringUtils.replace(part"[]""["+index+"]");
			}
		}
		return StringUtils.join(parts'.');
	}

Process modifier.

Parameters:
modifierString the modifier string
result the result
Returns:
the object
	@SuppressWarnings("unchecked")
	private Object processModifier(String modifierStringObject result){
		if(StringUtils.isNotBlank(modifierString)){
			Modifier<Objectmodifier = 
				this..instantiate(modifierStringModifier.classfalse);
			result = modifier.beforeSetting(result);
		}
		return result;
	}
New to GrepCode? Check out our FAQ X