IProperty (@NotNull @NonNls String key) { synchronized (myLock) { ensurePropertiesLoaded(); Iterator<IProperty> properties = myPropertiesMap.get(key).iterator(); return properties.hasNext() ? properties.next(): null; } }