Set client information in Sone builder.
[Sone.git] / src / main / java / net / pterodactylus / sone / data / impl / DefaultSoneBuilder.java
1 package net.pterodactylus.sone.data.impl;
2
3 import net.pterodactylus.sone.data.Sone;
4 import net.pterodactylus.sone.database.Database;
5 import net.pterodactylus.sone.database.SoneBuilder;
6
7 import com.google.common.base.Optional;
8
9 /**
10  * {@link SoneBuilder} implementation that can create {@link DefaultSone}s.
11  *
12  * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
13  */
14 public class DefaultSoneBuilder extends AbstractSoneBuilder {
15
16         private final Database database;
17
18         public DefaultSoneBuilder(Database database) {
19                 this.database = database;
20         }
21
22         @Override
23         public Sone build(Optional<SoneCreated> soneCreated) throws IllegalStateException {
24                 validate();
25                 Sone sone = new DefaultSone(database, id, local, client);
26                 if (soneCreated.isPresent()) {
27                         soneCreated.get().soneCreated(sone);
28                 }
29                 return sone;
30         }
31
32 }