projects
/
Sone.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add method to add remote Sones for watching.
[Sone.git]
/
src
/
main
/
java
/
net
/
pterodactylus
/
sone
/
data
/
ReplyShell.java
diff --git
a/src/main/java/net/pterodactylus/sone/data/ReplyShell.java
b/src/main/java/net/pterodactylus/sone/data/ReplyShell.java
index
fcab34a
..
3886e63
100644
(file)
--- a/
src/main/java/net/pterodactylus/sone/data/ReplyShell.java
+++ b/
src/main/java/net/pterodactylus/sone/data/ReplyShell.java
@@
-18,6
+18,10
@@
package net.pterodactylus.sone.data;
import java.util.UUID;
package net.pterodactylus.sone.data;
import java.util.UUID;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import net.pterodactylus.util.logging.Logging;
/**
* A shell around a {@link Reply} for replies that have not yet been retrieved
/**
* A shell around a {@link Reply} for replies that have not yet been retrieved
@@
-27,6
+31,18
@@
import java.util.UUID;
*/
public class ReplyShell extends Reply implements Shell<Reply> {
*/
public class ReplyShell extends Reply implements Shell<Reply> {
+ /** The logger. */
+ private static final Logger logger = Logging.getLogger(ReplyShell.class);
+
+ /** The shell creator. */
+ public static final ShellCreator<Reply> creator = new ShellCreator<Reply>() {
+
+ @Override
+ public Shell<Reply> createShell(String id) {
+ return new ReplyShell().setId(id);
+ }
+ };
+
/** The Sone that posted this reply. */
private Sone sone;
/** The Sone that posted this reply. */
private Sone sone;
@@
-92,8
+108,13
@@
public class ReplyShell extends Reply implements Shell<Reply> {
* The ID of this reply
* @return This reply shell (for method chaining)
*/
* The ID of this reply
* @return This reply shell (for method chaining)
*/
- public ReplyShell setId(UUID id) {
- this.id = id;
+ public ReplyShell setId(String id) {
+ try {
+ this.id = UUID.fromString(id);
+ } catch (IllegalArgumentException iae1) {
+ logger.log(Level.WARNING, "Invalid ID: “" + id + "”.", iae1);
+ this.id = UUID.randomUUID();
+ }
return this;
}
return this;
}
@@
-126,7
+147,7
@@
public class ReplyShell extends Reply implements Shell<Reply> {
*/
@Override
public long getTime() {
*/
@Override
public long getTime() {
- return
time
;
+ return
(time != null) ? time : 0
;
}
/**
}
/**
@@
-172,7
+193,7
@@
public class ReplyShell extends Reply implements Shell<Reply> {
*/
@Override
public boolean canUnshell() {
*/
@Override
public boolean canUnshell() {
- return (sone != null) && (
id != null) && (post != null
) && (time != null) && (text != null);
+ return (sone != null) && (
!(sone instanceof Shell<?>)) && (id != null) && (post != null) && (!(post instanceof Shell<?>)
) && (time != null) && (text != null);
}
/**
}
/**
@@
-183,7
+204,7
@@
public class ReplyShell extends Reply implements Shell<Reply> {
if (canUnshell()) {
return new Reply(sone, id, post, time, text);
}
if (canUnshell()) {
return new Reply(sone, id, post, time, text);
}
- return
null
;
+ return
this
;
}
}
}
}