private OptionsContext getAndCachePropertyOptions(PropertyKey key) { OptionsContext propertyOptions = OptionsContextImpl.forProperty(sources, key.getEntity(), key.getProperty()); OptionsContext cachedOptions = propertyContexts.putIfAbsent(key, propertyOptions); if (cachedOptions != null) { propertyOptions = cachedOptions; } return propertyOptions; }