import static com.google.common.base.Preconditions.checkNotNull;
import static java.lang.String.format;
+import static java.util.logging.Logger.getLogger;
import java.net.MalformedURLException;
import java.util.ArrayList;
import net.pterodactylus.sone.data.SoneOptions.DefaultSoneOptions;
import net.pterodactylus.sone.freenet.wot.Identity;
import net.pterodactylus.sone.freenet.wot.OwnIdentity;
-import net.pterodactylus.util.logging.Logging;
import freenet.keys.FreenetURI;
public class SoneImpl implements Sone {
/** The logger. */
- private static final Logger logger = Logging.getLogger(SoneImpl.class);
+ private static final Logger logger = getLogger("Sone.Data");
/** The ID of this Sone. */
private final String id;
/** The identity of this Sone. */
private final Identity identity;
- /** The URI under which the Sone is stored in Freenet. */
- private volatile FreenetURI requestUri;
-
- /** The URI used to insert a new version of this Sone. */
- /* This will be null for remote Sones! */
- private volatile FreenetURI insertUri;
-
/** The latest edition of the Sone. */
private volatile long latestEdition;
* @return The request URI of this Sone
*/
public FreenetURI getRequestUri() {
- return (requestUri != null) ? requestUri.setSuggestedEdition(latestEdition) : null;
- }
-
- /**
- * Sets the request URI of this Sone.
- *
- * @param requestUri
- * The request URI of this Sone
- * @return This Sone (for method chaining)
- */
- public Sone setRequestUri(FreenetURI requestUri) {
- if (this.requestUri == null) {
- this.requestUri = requestUri.setKeyType("USK").setDocName("Sone").setMetaString(new String[0]);
- return this;
- }
- if (!this.requestUri.equalsKeypair(requestUri)) {
- logger.log(Level.WARNING, String.format("Request URI %s tried to overwrite %s!", requestUri, this.requestUri));
- return this;
+ try {
+ return new FreenetURI(getIdentity().getRequestUri())
+ .setKeyType("USK")
+ .setDocName("Sone")
+ .setMetaString(new String[0])
+ .setSuggestedEdition(latestEdition);
+ } catch (MalformedURLException e) {
+ throw new IllegalStateException(
+ format("Identity %s's request URI is incorrect.",
+ getIdentity()), e);
}
- return this;
}
/**
return null;
}
try {
- return new FreenetURI(((OwnIdentity) getIdentity()).getInsertUri()).setDocName("Sone").setMetaString(new String[0]);
+ return new FreenetURI(((OwnIdentity) getIdentity()).getInsertUri())
+ .setDocName("Sone")
+ .setMetaString(new String[0])
+ .setSuggestedEdition(latestEdition);
} catch (MalformedURLException e) {
throw new IllegalStateException(format("Own identity %s's insert URI is incorrect.", getIdentity()), e);
}
/** {@inheritDoc} */
@Override
public String toString() {
- return getClass().getName() + "[identity=" + identity + ",requestUri=" + requestUri + ",insertUri(" + String.valueOf(insertUri).length() + "),friends(" + friendSones.size() + "),posts(" + posts.size() + "),replies(" + replies.size() + "),albums(" + getRootAlbum().getAlbums().size() + ")]";
+ return getClass().getName() + "[identity=" + identity + ",friends(" + friendSones.size() + "),posts(" + posts.size() + "),replies(" + replies.size() + "),albums(" + getRootAlbum().getAlbums().size() + ")]";
}
}