private final BeanProperty toBeanProperty(Object base, Object property) {
		BeanProperties beanProperties = cache.get(base.getClass());
		if (beanProperties == null) {
			BeanProperties newBeanProperties = new BeanProperties(base.getClass());
			beanProperties = cache.putIfAbsent(base.getClass(), newBeanProperties);
			if (beanProperties == null) { // put succeeded, use new value
				beanProperties = newBeanProperties;
			}
		}
		BeanProperty beanProperty = property == null ? null : beanProperties.getBeanProperty(property.toString());
		if (beanProperty == null) {
			throw new PropertyNotFoundException("Could not find property " + property + " in " + base.getClass());
		}
		return beanProperty;
	}
private final BeanProperty toBeanProperty ( Object base , Object property ) { BeanProperties beanProperties = cache . get ( base . getClass ( ) ) ; if ( beanProperties == null ) { BeanProperties newBeanProperties = new BeanProperties ( base . getClass ( ) ) ; beanProperties = cache . putIfAbsent ( base . getClass ( ) , newBeanProperties ) ; if ( beanProperties == null ) { beanProperties = newBeanProperties ; } } BeanProperty beanProperty = property == null ? null : beanProperties . getBeanProperty ( property . toString ( ) ) ; if ( beanProperty == null ) { throw new PropertyNotFoundException ( "Could not find property " + property + " in " + base . getClass ( ) ) ; } return beanProperty ; }
Lookup BeanProperty for the given (base, property) pair.

@param base
The bean to analyze.
@param property
The name of the property to analyze. Will be coerced to a String.
@return The BeanProperty representing (base, property).
@throws PropertyNotFoundException
if no BeanProperty can be found.