Use different method to create a local Sone.
[Sone.git] / src / main / java / net / pterodactylus / sone / database / memory / MemorySoneBuilder.java
1 package net.pterodactylus.sone.database.memory;
2
3 import net.pterodactylus.sone.data.LocalSone;
4 import net.pterodactylus.sone.data.Sone;
5 import net.pterodactylus.sone.data.impl.AbstractSoneBuilder;
6 import net.pterodactylus.sone.data.impl.SoneImpl;
7 import net.pterodactylus.sone.database.Database;
8 import net.pterodactylus.sone.freenet.wot.OwnIdentity;
9
10 import com.google.common.base.Preconditions;
11
12 /**
13  * Memory-based {@link AbstractSoneBuilder} implementation.
14  *
15  * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
16  */
17 public class MemorySoneBuilder extends AbstractSoneBuilder {
18
19         private final Database database;
20
21         public MemorySoneBuilder(Database database) {
22                 this.database = database;
23         }
24
25         @Override
26         public Sone build() throws IllegalStateException {
27                 validate();
28                 return new SoneImpl(database, identity, false, lastUpdated, client, posts, postReplies);
29         }
30
31         @Override
32         public LocalSone buildLocal() throws IllegalStateException {
33                 validateLocal();
34                 return new SoneImpl(database, identity, true, lastUpdated, client, posts, postReplies);
35         }
36
37 }