public NbGradleModel updateEntry(NbGradleModel model) { CacheKey key = tryCreateKey(model); if (key == null) { return null; } NbGradleModel newModel = model; NbGradleModel prevModel; cacheLock.lock(); try { prevModel = cache.get(key); if (prevModel == null) { cache.put(key, newModel); cleanupCache(); } else { newModel = prevModel.updateEntry(newModel); cache.put(key, newModel); } } finally { cacheLock.unlock(); } if (prevModel != null) { notifyUpdate(model); } return newModel; }
private static CacheKey tryCreateKey(NbGradleModel model) { ExceptionHelper.checkNotNullArgument(model, "model"); File projectDir = model.getGenericInfo().getProjectDir(); FileObject settingsFileObj = model.getGenericInfo().tryGetSettingsFileObj(); File settingsFile = settingsFileObj != null ? FileUtil.toFile(settingsFileObj) : null; if (projectDir == null || (settingsFile == null && settingsFileObj != null)) { return null; } return new CacheKey(projectDir, settingsFile); }