X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Ftext%2FSoneTextParser.java;h=a9208dc950e034594b229c27b91e4edd1ab73bad;hb=f1a337e97c0188170e8ea8bb06b99324f3a07dee;hp=6d81c0dfb0377886c9cae6756f4e5c2309ceff1a;hpb=6e9a43ccd93ae125720547c0fe421dc81a54ba90;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 6d81c0d..a9208dc 100644 --- a/src/main/java/net/pterodactylus/sone/text/SoneTextParser.java +++ b/src/main/java/net/pterodactylus/sone/text/SoneTextParser.java @@ -28,15 +28,15 @@ import java.util.regex.Pattern; import net.pterodactylus.sone.data.Post; import net.pterodactylus.sone.data.Sone; -import net.pterodactylus.sone.database.PostProvider; -import net.pterodactylus.sone.database.SoneProvider; +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 com.google.common.base.Optional; - import freenet.keys.FreenetURI; +import com.google.common.base.Optional; + /** * {@link Parser} implementation that can recognize Freenet URIs. * @@ -105,32 +105,21 @@ 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; } // // PART METHODS // - /** - * {@inheritDoc} - */ @Override public Iterable parse(SoneTextParserContext context, Reader source) throws IOException { PartContainer parts = new PartContainer(); @@ -242,13 +231,13 @@ public class SoneTextParser implements Parser { if (linkType == LinkType.SONE) { if (line.length() >= (7 + 43)) { String soneId = line.substring(7, 50); - Optional sone = soneProvider.getSone(soneId); + Optional sone = database.getSone(soneId); if (!sone.isPresent()) { /* * don’t use create=true above, we don’t want * the empty shell. */ - sone = Optional.fromNullable(new Sone(soneId, false)); + sone = Optional.of(new DefaultSone(database, soneId, false, null)); } parts.add(new SonePart(sone.get())); line = line.substring(50); @@ -261,7 +250,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 {