Update license to GPLv3, fix header comments
[jFCPlib.git] / src / main / java / net / pterodactylus / fcp / SubscribeUSK.java
index 6a18333..cfa7613 100644 (file)
@@ -1,9 +1,9 @@
 /*
- * jFCPlib - SubscribeUSK.java - Copyright © 2008 David Roden
+ * jFCPlib - SubscribeUSK.java - Copyright © 2008–2016 David Roden
  *
- * This program is free software; you can redistribute it and/or modify
+ * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
+ * the Free Software Foundation, either version 3 of the License, or
  * (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
@@ -12,8 +12,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 package net.pterodactylus.fcp;
@@ -24,22 +23,35 @@ package net.pterodactylus.fcp;
  *
  * @author David ‘Bombe’ Roden &lt;bombe@freenetproject.org&gt;
  */
-public class SubscribeUSK extends FcpMessage {
+public class SubscribeUSK extends FcpMessage implements Identifiable {
 
-       /**
-        * Creates a new “SubscribeUSK” message.
-        *
-        * @param uri
-        *            The URI to watch for changes
-        * @param identifier
-        *            The identifier of the request
-        */
-       public SubscribeUSK(String uri, String identifier) {
+       public SubscribeUSK(String identifier) {
                super("SubscribeUSK");
-               setField("URI", uri);
                setField("Identifier", identifier);
        }
 
+       public SubscribeUSK(String uri, String identifier) {
+               this(identifier);
+               setField("URI", uri);
+       }
+
+       @Override
+       public String getIdentifier() {
+               return getField("Identifier");
+       }
+
+       public String getUri() {
+               return getField("URI");
+       }
+
+       public void setUri(String uri) {
+               setField("URI", uri);
+       }
+
+       public boolean isActive() {
+               return !Boolean.parseBoolean(getField("DontPoll"));
+       }
+
        /**
         * Sets whether updates for the USK are actively searched.
         *
@@ -52,4 +64,52 @@ public class SubscribeUSK extends FcpMessage {
                setField("DontPoll", String.valueOf(!active));
        }
 
+       public boolean isSparse() {
+               return Boolean.valueOf(getField("SparsePoll"));
+       }
+
+       public void setSparse(boolean sparse) {
+               setField("SparsePoll", String.valueOf(sparse));
+       }
+
+       public Priority getPriority() {
+               String priorityClass = getField("PriorityClass");
+               if (priorityClass != null) {
+                       return Priority.valueOf(priorityClass);
+               }
+               return Priority.bulkSplitfile;
+       }
+
+       public void setPriority(Priority priority) {
+               setField("PriorityClass", priority.toString());
+       }
+
+       public Priority getActivePriority() {
+               String priorityClass = getField("PriorityClassProgress");
+               if (priorityClass != null) {
+                       return Priority.valueOf(priorityClass);
+               }
+               return Priority.update;
+       }
+
+       public void setActivePriority(Priority activePriority) {
+               setField("PriorityClassProgress", activePriority.toString());
+       }
+
+       public boolean isRealTime() {
+               return Boolean.valueOf(getField("RealTimeFlag"));
+       }
+
+       public void setRealTime(boolean realTime) {
+               setField("RealTimeFlag", String.valueOf(realTime));
+       }
+
+       public boolean isIgnoreDateHints() {
+               return Boolean.valueOf(getField("IgnoreUSKDatehints"));
+       }
+
+       public void setIgnoreDateHints(boolean ignoreDateHints) {
+               setField("IgnoreUSKDatehints", String.valueOf(ignoreDateHints));
+       }
+
 }