private final Map<String, Image> allImages = new HashMap<String, Image>();
private final Multimap<String, Image> soneImages = HashMultimap.create();
- private final MemoryBookmarkDatabase memoryBookmarkDatabase =
- new MemoryBookmarkDatabase(this);
+ private final MemoryBookmarkDatabase memoryBookmarkDatabase;
/**
* Creates a new memory database.
this.soneProvider = soneProvider;
this.configuration = configuration;
this.configurationLoader = new ConfigurationLoader(configuration);
+ memoryBookmarkDatabase =
+ new MemoryBookmarkDatabase(this, configurationLoader);
}
//
/** {@inheritDocs} */
@Override
protected void doStart() {
+ memoryBookmarkDatabase.start();
loadKnownPosts();
loadKnownPostReplies();
notifyStarted();
@Override
protected void doStop() {
try {
+ memoryBookmarkDatabase.stop();
save();
notifyStopped();
} catch (DatabaseException de1) {
}
@Override
- public void bookmarkPost(String postId) {
- memoryBookmarkDatabase.bookmarkPost(postId);
- }
-
- @Override
public void bookmarkPost(Post post) {
memoryBookmarkDatabase.bookmarkPost(post);
}
/** Loads the known post replies. */
private void loadKnownPostReplies() {
+ Set<String> knownPostReplies = configurationLoader.loadKnownPostReplies();
lock.writeLock().lock();
try {
- int replyCounter = 0;
- while (true) {
- String knownReplyId = configuration.getStringValue("KnownReplies/" + replyCounter++ + "/ID").getValue(null);
- if (knownReplyId == null) {
- break;
- }
- knownPostReplies.add(knownReplyId);
- }
+ this.knownPostReplies.clear();
+ this.knownPostReplies.addAll(knownPostReplies);
} finally {
lock.writeLock().unlock();
}