Add ProjectCache.remove()

We need a way to remove data from the project cache so that plugins can
do things such as delete projects.

Signed-off-by: Brad Larson <bklarson@gmail.com>
Change-Id: I37e2ca53614ccb8a06480f7a0a6d9a6884b0c3b5
This commit is contained in:
Brad Larson
2012-05-10 14:33:59 -05:00
parent 1fe34dfe85
commit ea187f2f3f
3 changed files with 24 additions and 0 deletions

View File

@@ -114,6 +114,20 @@ public class ProjectCacheImpl implements ProjectCache {
}
}
@Override
public void remove(final Project p) {
listLock.lock();
try {
SortedSet<Project.NameKey> n = list.get(ListKey.ALL);
n = new TreeSet<Project.NameKey>(n);
n.remove(p.getNameKey());
list.put(ListKey.ALL, Collections.unmodifiableSortedSet(n));
} finally {
listLock.unlock();
}
evict(p);
}
@Override
public void onCreateProject(Project.NameKey newProjectName) {
listLock.lock();