protected PropertyMethodChain addPropertyMethodChainIfAbsent(Class<?> clazz, ConcurrentMap<String, PropertyMethodChain> propMap, String propertyName, boolean readOnly)
throws ApplicationIllegalArgumentException {
if (!propMap.containsKey(propertyName)) {
PropertyMethodChain propertyMethodChain = newPropertyMethodChain(clazz, propertyName, readOnly);
if ( propertyMethodChain == null) {
throw new ApplicationIllegalArgumentException(clazz, " has no property named '",propertyName,"'");
}
propMap.putIfAbsent(propertyName, propertyMethodChain);
}
return propMap.get(propertyName);
}