X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Ftext%2FSoneTextParser.java;h=16db9c119d5487407867bbb62d61f8bb68dff74d;hb=2634794177308a24fd806a9da1df16caff1a639e;hp=6e84c70e64ed9c427ec578dc69acf31efd6175a3;hpb=8503021c00d63885288c507d9930fefabd5d7678;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/text/SoneTextParser.java b/src/main/java/net/pterodactylus/sone/text/SoneTextParser.java index 6e84c70..16db9c1 100644 --- a/src/main/java/net/pterodactylus/sone/text/SoneTextParser.java +++ b/src/main/java/net/pterodactylus/sone/text/SoneTextParser.java @@ -26,16 +26,17 @@ import java.util.logging.Logger; import java.util.regex.Matcher; import java.util.regex.Pattern; -import com.google.common.base.Optional; - -import net.pterodactylus.sone.core.PostProvider; -import net.pterodactylus.sone.core.SoneProvider; import net.pterodactylus.sone.data.Post; import net.pterodactylus.sone.data.Sone; +import net.pterodactylus.sone.data.impl.DefaultSone; +import net.pterodactylus.sone.database.Database; import net.pterodactylus.util.io.Closer; import net.pterodactylus.util.logging.Logging; + import freenet.keys.FreenetURI; +import com.google.common.base.Optional; + /** * {@link Parser} implementation that can recognize Freenet URIs. * @@ -104,23 +105,15 @@ public class SoneTextParser implements Parser { } - /** The Sone provider. */ - private final SoneProvider soneProvider; - - /** The post provider. */ - private final PostProvider postProvider; + private final Database database; /** * Creates a new freenet link parser. * - * @param soneProvider - * The Sone provider - * @param postProvider - * The post provider + * @param database */ - public SoneTextParser(SoneProvider soneProvider, PostProvider postProvider) { - this.soneProvider = soneProvider; - this.postProvider = postProvider; + public SoneTextParser(Database database) { + this.database = database; } // @@ -241,15 +234,15 @@ public class SoneTextParser implements Parser { if (linkType == LinkType.SONE) { if (line.length() >= (7 + 43)) { String soneId = line.substring(7, 50); - Sone sone = soneProvider.getSone(soneId, false); - if (sone == null) { + Optional sone = database.getSone(soneId); + if (!sone.isPresent()) { /* * don’t use create=true above, we don’t want * the empty shell. */ - sone = new Sone(soneId, false); + sone = Optional.of(new DefaultSone(database, soneId, false)); } - parts.add(new SonePart(sone)); + parts.add(new SonePart(sone.get())); line = line.substring(50); } else { parts.add(new PlainTextPart(line)); @@ -260,7 +253,7 @@ public class SoneTextParser implements Parser { if (linkType == LinkType.POST) { if (line.length() >= (7 + 36)) { String postId = line.substring(7, 43); - Optional post = postProvider.getPost(postId); + Optional post = database.getPost(postId); if (post.isPresent()) { parts.add(new PostPart(post.get())); } else {