projects
/
Sone.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Move parsing of protocol version into its own method.
[Sone.git]
/
src
/
main
/
java
/
net
/
pterodactylus
/
sone
/
text
/
SoneTextParser.java
diff --git
a/src/main/java/net/pterodactylus/sone/text/SoneTextParser.java
b/src/main/java/net/pterodactylus/sone/text/SoneTextParser.java
index
a093e46
..
a9208dc
100644
(file)
--- a/
src/main/java/net/pterodactylus/sone/text/SoneTextParser.java
+++ b/
src/main/java/net/pterodactylus/sone/text/SoneTextParser.java
@@
-26,14
+26,17
@@
import java.util.logging.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-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.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 net.pterodactylus.util.io.Closer;
import net.pterodactylus.util.logging.Logging;
+
import freenet.keys.FreenetURI;
import freenet.keys.FreenetURI;
+import com.google.common.base.Optional;
+
/**
* {@link Parser} implementation that can recognize Freenet URIs.
*
/**
* {@link Parser} implementation that can recognize Freenet URIs.
*
@@
-102,32
+105,21
@@
public class SoneTextParser implements Parser<SoneTextParserContext> {
}
}
- /** The Sone provider. */
- private final SoneProvider soneProvider;
-
- /** The post provider. */
- private final PostProvider postProvider;
+ private final Database database;
/**
* Creates a new freenet link parser.
*
/**
* 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
//
}
//
// PART METHODS
//
- /**
- * {@inheritDoc}
- */
@Override
public Iterable<Part> parse(SoneTextParserContext context, Reader source) throws IOException {
PartContainer parts = new PartContainer();
@Override
public Iterable<Part> parse(SoneTextParserContext context, Reader source) throws IOException {
PartContainer parts = new PartContainer();
@@
-239,15
+231,15
@@
public class SoneTextParser implements Parser<SoneTextParserContext> {
if (linkType == LinkType.SONE) {
if (line.length() >= (7 + 43)) {
String soneId = line.substring(7, 50);
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> sone = database.getSone(soneId
);
+ if (
!sone.isPresent()
) {
/*
* don’t use create=true above, we don’t want
* the empty shell.
*/
/*
* don’t use create=true above, we don’t want
* the empty shell.
*/
- sone =
new Sone(soneId, false
);
+ sone =
Optional.<Sone>of(new DefaultSone(database, soneId, false, null)
);
}
}
- parts.add(new SonePart(sone));
+ parts.add(new SonePart(sone
.get()
));
line = line.substring(50);
} else {
parts.add(new PlainTextPart(line));
line = line.substring(50);
} else {
parts.add(new PlainTextPart(line));
@@
-258,9
+250,9
@@
public class SoneTextParser implements Parser<SoneTextParserContext> {
if (linkType == LinkType.POST) {
if (line.length() >= (7 + 36)) {
String postId = line.substring(7, 43);
if (linkType == LinkType.POST) {
if (line.length() >= (7 + 36)) {
String postId = line.substring(7, 43);
-
Post post = postProvider
.getPost(postId);
- if (
(post != null) && (post.getSone() != null
)) {
- parts.add(new PostPart(post));
+
Optional<Post> post = database
.getPost(postId);
+ if (
post.isPresent(
)) {
+ parts.add(new PostPart(post
.get()
));
} else {
parts.add(new PlainTextPart(line.substring(0, 43)));
}
} else {
parts.add(new PlainTextPart(line.substring(0, 43)));
}