Store the Sone ID instead of the Sone itself in the session.
[Sone.git] / src / main / java / net / pterodactylus / sone / data / Sone.java
index 8416a05..4a73470 100644 (file)
@@ -20,6 +20,7 @@ package net.pterodactylus.sone.data;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.Set;
+import java.util.UUID;
 
 import freenet.keys.FreenetURI;
 
@@ -31,6 +32,12 @@ import freenet.keys.FreenetURI;
  */
 public class Sone {
 
+       /** A GUID for this Sone. */
+       private final UUID id;
+
+       /** The name of this Sone. */
+       private final String name;
+
        /** The URI under which the Sone is stored in Freenet. */
        private final FreenetURI requestUri;
 
@@ -44,22 +51,32 @@ public class Sone {
        /**
         * Creates a new Sone.
         *
+        * @param id
+        *            The ID of this Sone
+        * @param name
+        *            The name of the Sone
         * @param requestUri
         *            The request URI of the Sone
         */
-       public Sone(FreenetURI requestUri) {
-               this(requestUri, null);
+       public Sone(UUID id, String name, FreenetURI requestUri) {
+               this(id, name, requestUri, null);
        }
 
        /**
         * Creates a new Sone.
         *
+        * @param id
+        *            The ID of this Sone
+        * @param name
+        *            The name of the Sone
         * @param requestUri
         *            The request URI of the Sone
         * @param insertUri
         *            The insert URI of the Sone
         */
-       public Sone(FreenetURI requestUri, FreenetURI insertUri) {
+       public Sone(UUID id, String name, FreenetURI requestUri, FreenetURI insertUri) {
+               this.id = id;
+               this.name = name;
                this.requestUri = requestUri;
                this.insertUri = insertUri;
        }
@@ -69,11 +86,29 @@ public class Sone {
        //
 
        /**
+        * Returns the ID of this Sone.
+        *
+        * @return The ID of this Sone
+        */
+       public String getId() {
+               return id.toString();
+       }
+
+       /**
+        * Returns the name of this Sone.
+        *
+        * @return The name of this Sone
+        */
+       public String getName() {
+               return name;
+       }
+
+       /**
         * Returns the request URI of this Sone.
         *
         * @return The request URI of this Sone
         */
-       public FreenetURI requestUri() {
+       public FreenetURI getRequestUri() {
                return requestUri;
        }
 
@@ -82,7 +117,7 @@ public class Sone {
         *
         * @return The insert URI of this Sone
         */
-       public FreenetURI insertUri() {
+       public FreenetURI getInsertUri() {
                return insertUri;
        }
 
@@ -131,4 +166,16 @@ public class Sone {
                return this;
        }
 
+       //
+       // OBJECT METHODS
+       //
+
+       /**
+        * {@inheritDoc}
+        */
+       @Override
+       public int hashCode() {
+               return id.hashCode();
+       }
+
 }