summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Maudsley <richard.maudsley@isode.com>2014-02-04 09:49:24 (GMT)
committerRichard Maudsley <richard.maudsley@isode.com>2014-03-07 14:28:58 (GMT)
commita511087b1f57f1f6372374f41d0b4b7ebeef9930 (patch)
treea319c6c65f4c4722635f78ac564a823a370d011c /src/com/isode/stroke/elements
parent535e1a979a164f807aa64bf2df2bb36e7015ff17 (diff)
downloadstroke-a511087b1f57f1f6372374f41d0b4b7ebeef9930.zip
stroke-a511087b1f57f1f6372374f41d0b4b7ebeef9930.tar.bz2
PubSub parsers and serializers, plus manager and test code.
Change-Id: Ie8ca77ba8dbcd83926d46307ad0e73d804ff7422
Diffstat (limited to 'src/com/isode/stroke/elements')
-rw-r--r--src/com/isode/stroke/elements/ContainerPayload.java29
-rw-r--r--src/com/isode/stroke/elements/PubSub.java14
-rw-r--r--src/com/isode/stroke/elements/PubSubAffiliation.java47
-rw-r--r--src/com/isode/stroke/elements/PubSubAffiliations.java43
-rw-r--r--src/com/isode/stroke/elements/PubSubConfigure.java30
-rw-r--r--src/com/isode/stroke/elements/PubSubCreate.java38
-rw-r--r--src/com/isode/stroke/elements/PubSubDefault.java44
-rw-r--r--src/com/isode/stroke/elements/PubSubError.java108
-rw-r--r--src/com/isode/stroke/elements/PubSubEventAssociate.java29
-rw-r--r--src/com/isode/stroke/elements/PubSubEventCollection.java47
-rw-r--r--src/com/isode/stroke/elements/PubSubEventConfiguration.java39
-rw-r--r--src/com/isode/stroke/elements/PubSubEventDelete.java38
-rw-r--r--src/com/isode/stroke/elements/PubSubEventDisassociate.java29
-rw-r--r--src/com/isode/stroke/elements/PubSubEventItem.java61
-rw-r--r--src/com/isode/stroke/elements/PubSubEventItems.java56
-rw-r--r--src/com/isode/stroke/elements/PubSubEventPayload.java14
-rw-r--r--src/com/isode/stroke/elements/PubSubEventPurge.java29
-rw-r--r--src/com/isode/stroke/elements/PubSubEventRedirect.java29
-rw-r--r--src/com/isode/stroke/elements/PubSubEventRetract.java29
-rw-r--r--src/com/isode/stroke/elements/PubSubEventSubscription.java74
-rw-r--r--src/com/isode/stroke/elements/PubSubItem.java43
-rw-r--r--src/com/isode/stroke/elements/PubSubItems.java61
-rw-r--r--src/com/isode/stroke/elements/PubSubOptions.java58
-rw-r--r--src/com/isode/stroke/elements/PubSubOwnerAffiliation.java48
-rw-r--r--src/com/isode/stroke/elements/PubSubOwnerAffiliations.java43
-rw-r--r--src/com/isode/stroke/elements/PubSubOwnerConfigure.java39
-rw-r--r--src/com/isode/stroke/elements/PubSubOwnerDefault.java30
-rw-r--r--src/com/isode/stroke/elements/PubSubOwnerDelete.java38
-rw-r--r--src/com/isode/stroke/elements/PubSubOwnerPayload.java14
-rw-r--r--src/com/isode/stroke/elements/PubSubOwnerPubSub.java14
-rw-r--r--src/com/isode/stroke/elements/PubSubOwnerPurge.java29
-rw-r--r--src/com/isode/stroke/elements/PubSubOwnerRedirect.java29
-rw-r--r--src/com/isode/stroke/elements/PubSubOwnerSubscription.java46
-rw-r--r--src/com/isode/stroke/elements/PubSubOwnerSubscriptions.java43
-rw-r--r--src/com/isode/stroke/elements/PubSubPayload.java14
-rw-r--r--src/com/isode/stroke/elements/PubSubPublish.java43
-rw-r--r--src/com/isode/stroke/elements/PubSubRetract.java52
-rw-r--r--src/com/isode/stroke/elements/PubSubSubscribe.java48
-rw-r--r--src/com/isode/stroke/elements/PubSubSubscribeOptions.java29
-rw-r--r--src/com/isode/stroke/elements/PubSubSubscription.java73
-rw-r--r--src/com/isode/stroke/elements/PubSubSubscriptions.java43
-rw-r--r--src/com/isode/stroke/elements/PubSubUnsubscribe.java48
42 files changed, 1712 insertions, 0 deletions
diff --git a/src/com/isode/stroke/elements/ContainerPayload.java b/src/com/isode/stroke/elements/ContainerPayload.java
new file mode 100644
index 0000000..16134d0
--- /dev/null
+++ b/src/com/isode/stroke/elements/ContainerPayload.java
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2014, Isode Limited, London, England.
+* All rights reserved.
+*/
+/*
+* Copyright (c) 2014, Remko Tronçon.
+* All rights reserved.
+*/
+
+package com.isode.stroke.elements;
+
+public class ContainerPayload<T> extends Payload {
+ public ContainerPayload() {
+ }
+
+ public ContainerPayload(T payload) {
+ payload_ = payload;
+ }
+
+ public void setPayload(T payload) {
+ payload_ = payload;
+ }
+
+ public T getPayload() {
+ return payload_;
+ }
+
+ T payload_;
+}
diff --git a/src/com/isode/stroke/elements/PubSub.java b/src/com/isode/stroke/elements/PubSub.java
new file mode 100644
index 0000000..8a317bd
--- /dev/null
+++ b/src/com/isode/stroke/elements/PubSub.java
@@ -0,0 +1,14 @@
+/*
+* Copyright (c) 2014, Isode Limited, London, England.
+* All rights reserved.
+*/
+/*
+* Copyright (c) 2014, Remko Tronçon.
+* All rights reserved.
+*/
+
+package com.isode.stroke.elements;
+
+public class PubSub extends ContainerPayload<PubSubPayload> {
+
+}
diff --git a/src/com/isode/stroke/elements/PubSubAffiliation.java b/src/com/isode/stroke/elements/PubSubAffiliation.java
new file mode 100644
index 0000000..f6f74de
--- /dev/null
+++ b/src/com/isode/stroke/elements/PubSubAffiliation.java
@@ -0,0 +1,47 @@
+/*
+* Copyright (c) 2014, Isode Limited, London, England.
+* All rights reserved.
+*/
+/*
+* Copyright (c) 2014, Remko Tronçon.
+* All rights reserved.
+*/
+
+package com.isode.stroke.elements;
+
+import com.isode.stroke.elements.Payload;
+
+public class PubSubAffiliation extends Payload {
+public enum Type
+{
+ None,
+ Member,
+ Outcast,
+ Owner,
+ Publisher,
+ PublishOnly
+}
+
+public PubSubAffiliation() {
+}
+
+public String getNode() {
+ return node_;
+}
+
+public void setNode(String node) {
+ node_ = node;
+}
+
+public Type getType() {
+ return type_;
+}
+
+public void setType(Type type) {
+ type_ = type;
+}
+
+String node_;
+Type type_;
+
+}
diff --git a/src/com/isode/stroke/elements/PubSubAffiliations.java b/src/com/isode/stroke/elements/PubSubAffiliations.java
new file mode 100644
index 0000000..883f078
--- /dev/null
+++ b/src/com/isode/stroke/elements/PubSubAffiliations.java
@@ -0,0 +1,43 @@
+/*
+* Copyright (c) 2014, Isode Limited, London, England.
+* All rights reserved.
+*/
+/*
+* Copyright (c) 2014, Remko Tronçon.
+* All rights reserved.
+*/
+
+package com.isode.stroke.elements;
+
+import java.util.ArrayList;
+import com.isode.stroke.elements.PubSubPayload;
+
+public class PubSubAffiliations extends PubSubPayload {
+
+public PubSubAffiliations() {
+}
+
+public String getNode() {
+ return node_;
+}
+
+public void setNode(String node) {
+ node_ = node;
+}
+
+public ArrayList<PubSubAffiliation> getAffiliations() {
+ return affiliations_;
+}
+
+public void setAffiliations(ArrayList<PubSubAffiliation> affiliations) {
+ affiliations_ = affiliations;
+}
+
+public void addAffiliation(PubSubAffiliation value) {
+ affiliations_.add(value);
+}
+
+String node_;
+ArrayList<PubSubAffiliation> affiliations_ = new ArrayList<PubSubAffiliation>();
+
+}
diff --git a/src/com/isode/stroke/elements/PubSubConfigure.java b/src/com/isode/stroke/elements/PubSubConfigure.java
new file mode 100644
index 0000000..2b54374
--- /dev/null
+++ b/src/com/isode/stroke/elements/PubSubConfigure.java
@@ -0,0 +1,30 @@
+/*
+* Copyright (c) 2014, Isode Limited, London, England.
+* All rights reserved.
+*/
+/*
+* Copyright (c) 2014, Remko Tronçon.
+* All rights reserved.
+*/
+
+package com.isode.stroke.elements;
+
+import com.isode.stroke.elements.Form;
+import com.isode.stroke.elements.Payload;
+
+public class PubSubConfigure extends Payload {
+
+public PubSubConfigure() {
+}
+
+public Form getData() {
+ return data_;
+}
+
+public void setData(Form data) {
+ data_ = data;
+}
+
+Form data_;
+
+}
diff --git a/src/com/isode/stroke/elements/PubSubCreate.java b/src/com/isode/stroke/elements/PubSubCreate.java
new file mode 100644
index 0000000..e1ac6c0
--- /dev/null
+++ b/src/com/isode/stroke/elements/PubSubCreate.java
@@ -0,0 +1,38 @@
+/*
+* Copyright (c) 2014, Isode Limited, London, England.
+* All rights reserved.
+*/
+/*
+* Copyright (c) 2014, Remko Tronçon.
+* All rights reserved.
+*/
+
+package com.isode.stroke.elements;
+
+import com.isode.stroke.elements.PubSubPayload;
+
+public class PubSubCreate extends PubSubPayload {
+
+public PubSubCreate() {
+}
+
+public String getNode() {
+ return node_;
+}
+
+public void setNode(String node) {
+ node_ = node;
+}
+
+public PubSubConfigure getConfigure() {
+ return configure_;
+}
+
+public void setConfigure(PubSubConfigure configure) {
+ configure_ = configure;
+}
+
+String node_;
+PubSubConfigure configure_;
+
+}
diff --git a/src/com/isode/stroke/elements/PubSubDefault.java b/src/com/isode/stroke/elements/PubSubDefault.java
new file mode 100644
index 0000000..f5b075a
--- /dev/null
+++ b/src/com/isode/stroke/elements/PubSubDefault.java
@@ -0,0 +1,44 @@
+/*
+* Copyright (c) 2014, Isode Limited, London, England.
+* All rights reserved.
+*/
+/*
+* Copyright (c) 2014, Remko Tronçon.
+* All rights reserved.
+*/
+
+package com.isode.stroke.elements;
+
+import com.isode.stroke.elements.PubSubPayload;
+
+public class PubSubDefault extends PubSubPayload {
+public enum Type
+{
+ None,
+ Collection,
+ Leaf
+}
+
+public PubSubDefault() {
+}
+
+public String getNode() {
+ return node_;
+}
+
+public void setNode(String node) {
+ node_ = node;
+}
+
+public Type getType() {
+ return type_;
+}
+
+public void setType(Type type) {
+ type_ = type;
+}
+
+String node_;
+Type type_;
+
+}
diff --git a/src/com/isode/stroke/elements/PubSubError.java b/src/com/isode/stroke/elements/PubSubError.java
new file mode 100644
index 0000000..cd6aadf
--- /dev/null
+++ b/src/com/isode/stroke/elements/PubSubError.java
@@ -0,0 +1,108 @@
+/*
+ * Copyright (c) 2014, Isode Limited, London, England.
+ * All rights reserved.
+ */
+/*
+ * Copyright (c) 2014, Remko Tronçon.
+ * All rights reserved.
+ */
+
+package com.isode.stroke.elements;
+
+public class PubSubError extends Payload {
+ public enum Type {
+ UnknownType,
+ ClosedNode,
+ ConfigurationRequired,
+ InvalidJID,
+ InvalidOptions,
+ InvalidPayload,
+ InvalidSubscriptionID,
+ ItemForbidden,
+ ItemRequired,
+ JIDRequired,
+ MaximumItemsExceeded,
+ MaximumNodesExceeded,
+ NodeIDRequired,
+ NotInRosterGroup,
+ NotSubscribed,
+ PayloadTooBig,
+ PayloadRequired,
+ PendingSubscription,
+ PresenceSubscriptionRequired,
+ SubscriptionIDRequired,
+ TooManySubscriptions,
+ Unsupported,
+ UnsupportedAccessModel
+ };
+
+ public enum UnsupportedFeatureType {
+ UnknownUnsupportedFeatureType,
+ AccessAuthorize,
+ AccessOpen,
+ AccessPresence,
+ AccessRoster,
+ AccessWhitelist,
+ AutoCreate,
+ AutoSubscribe,
+ Collections,
+ ConfigNode,
+ CreateAndConfigure,
+ CreateNodes,
+ DeleteItems,
+ DeleteNodes,
+ FilteredNotifications,
+ GetPending,
+ InstantNodes,
+ ItemIDs,
+ LastPublished,
+ LeasedSubscription,
+ ManageSubscriptions,
+ MemberAffiliation,
+ MetaData,
+ ModifyAffiliations,
+ MultiCollection,
+ MultiSubscribe,
+ OutcastAffiliation,
+ PersistentItems,
+ PresenceNotifications,
+ PresenceSubscribe,
+ Publish,
+ PublishOptions,
+ PublishOnlyAffiliation,
+ PublisherAffiliation,
+ PurgeNodes,
+ RetractItems,
+ RetrieveAffiliations,
+ RetrieveDefault,
+ RetrieveItems,
+ RetrieveSubscriptions,
+ Subscribe,
+ SubscriptionOptions,
+ SubscriptionNotifications
+ };
+
+ public PubSubError(Type type) {
+ type_ = Type.UnknownType;
+ unsupportedType_ = UnsupportedFeatureType.UnknownUnsupportedFeatureType;
+ }
+
+ public Type getType() {
+ return type_;
+ }
+
+ public void setType(Type type) {
+ type_ = type;
+ }
+
+ public UnsupportedFeatureType getUnsupportedFeatureType() {
+ return unsupportedType_;
+ }
+
+ public void setUnsupportedFeatureType(UnsupportedFeatureType unsupportedType) {
+ unsupportedType_ = unsupportedType;
+ }
+
+ Type type_;
+ UnsupportedFeatureType unsupportedType_;
+}
diff --git a/src/com/isode/stroke/elements/PubSubEventAssociate.java b/src/com/isode/stroke/elements/PubSubEventAssociate.java
new file mode 100644
index 0000000..0ba4204
--- /dev/null
+++ b/src/com/isode/stroke/elements/PubSubEventAssociate.java
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2014, Isode Limited, London, England.
+* All rights reserved.
+*/
+/*
+* Copyright (c) 2014, Remko Tronçon.
+* All rights reserved.
+*/
+
+package com.isode.stroke.elements;
+
+import com.isode.stroke.elements.Payload;
+
+public class PubSubEventAssociate extends Payload {
+
+public PubSubEventAssociate() {
+}
+
+public String getNode() {
+ return node_;
+}
+
+public void setNode(String node) {
+ node_ = node;
+}
+
+String node_;
+
+}
diff --git a/src/com/isode/stroke/elements/PubSubEventCollection.java b/src/com/isode/stroke/elements/PubSubEventCollection.java
new file mode 100644
index 0000000..95a7119
--- /dev/null
+++ b/src/com/isode/stroke/elements/PubSubEventCollection.java
@@ -0,0 +1,47 @@
+/*
+* Copyright (c) 2014, Isode Limited, London, England.
+* All rights reserved.
+*/
+/*
+* Copyright (c) 2014, Remko Tronçon.
+* All rights reserved.
+*/
+
+package com.isode.stroke.elements;
+
+import com.isode.stroke.elements.PubSubEventPayload;
+
+public class PubSubEventCollection extends PubSubEventPayload {
+
+public PubSubEventCollection() {
+}
+
+public PubSubEventAssociate getAssociate() {
+ return associate_;
+}
+
+public void setAssociate(PubSubEventAssociate associate) {
+ associate_ = associate;
+}
+
+public String getNode() {
+ return node_;
+}
+
+public void setNode(String node) {
+ node_ = node;
+}
+
+public PubSubEventDisassociate getDisassociate() {
+ return disassociate_;
+}
+
+public void setDisassociate(PubSubEventDisassociate disassociate) {
+ disassociate_ = disassociate;
+}
+
+PubSubEventAssociate associate_;
+String node_;
+PubSubEventDisassociate disassociate_;
+
+}
diff --git a/src/com/isode/stroke/elements/PubSubEventConfiguration.java b/src/com/isode/stroke/elements/PubSubEventConfiguration.java
new file mode 100644
index 0000000..0d13daa
--- /dev/null
+++ b/src/com/isode/stroke/elements/PubSubEventConfiguration.java
@@ -0,0 +1,39 @@
+/*
+* Copyright (c) 2014, Isode Limited, London, England.
+* All rights reserved.
+*/
+/*
+* Copyright (c) 2014, Remko Tronçon.
+* All rights reserved.
+*/
+
+package com.isode.stroke.elements;
+
+import com.isode.stroke.elements.Form;
+import com.isode.stroke.elements.PubSubEventPayload;
+
+public class PubSubEventConfiguration extends PubSubEventPayload {
+
+public PubSubEventConfiguration() {
+}
+
+public Form getData() {
+ return data_;
+}
+
+public void setData(Form data) {
+ data_ = data;
+}
+
+public String getNode() {
+ return node_;
+}
+
+public void setNode(String node) {
+ node_ = node;
+}
+
+Form data_;
+String node_;
+
+}
diff --git a/src/com/isode/stroke/elements/PubSubEventDelete.java b/src/com/isode/stroke/elements/PubSubEventDelete.java
new file mode 100644
index 0000000..5c6418d
--- /dev/null
+++ b/src/com/isode/stroke/elements/PubSubEventDelete.java
@@ -0,0 +1,38 @@
+/*
+* Copyright (c) 2014, Isode Limited, London, England.
+* All rights reserved.
+*/
+/*
+* Copyright (c) 2014, Remko Tronçon.
+* All rights reserved.
+*/
+
+package com.isode.stroke.elements;
+
+import com.isode.stroke.elements.PubSubEventPayload;
+
+public class PubSubEventDelete extends PubSubEventPayload {
+
+public PubSubEventDelete() {
+}
+
+public PubSubEventRedirect getRedirects() {
+ return redirects_;
+}
+
+public void setRedirects(PubSubEventRedirect redirects) {
+ redirects_ = redirects;
+}
+
+public String getNode() {
+ return node_;
+}
+
+public void setNode(String node) {
+ node_ = node;
+}
+
+PubSubEventRedirect redirects_;
+String node_;
+
+}
diff --git a/src/com/isode/stroke/elements/PubSubEventDisassociate.java b/src/com/isode/stroke/elements/PubSubEventDisassociate.java
new file mode 100644
index 0000000..d6fcb97
--- /dev/null
+++ b/src/com/isode/stroke/elements/PubSubEventDisassociate.java
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2014, Isode Limited, London, England.
+* All rights reserved.
+*/
+/*
+* Copyright (c) 2014, Remko Tronçon.
+* All rights reserved.
+*/
+
+package com.isode.stroke.elements;
+
+import com.isode.stroke.elements.Payload;
+
+public class PubSubEventDisassociate extends Payload {
+
+public PubSubEventDisassociate() {
+}
+
+public String getNode() {
+ return node_;
+}
+
+public void setNode(String node) {
+ node_ = node;
+}
+
+String node_;
+
+}
diff --git a/src/com/isode/stroke/elements/PubSubEventItem.java b/src/com/isode/stroke/elements/PubSubEventItem.java
new file mode 100644
index 0000000..2086106
--- /dev/null
+++ b/src/com/isode/stroke/elements/PubSubEventItem.java
@@ -0,0 +1,61 @@
+/*
+* Copyright (c) 2014, Isode Limited, London, England.
+* All rights reserved.
+*/
+/*
+* Copyright (c) 2014, Remko Tronçon.
+* All rights reserved.
+*/
+
+package com.isode.stroke.elements;
+
+import java.util.ArrayList;
+import com.isode.stroke.elements.Payload;
+
+public class PubSubEventItem extends Payload {
+
+public PubSubEventItem() {
+}
+
+public String getPublisher() {
+ return publisher_;
+}
+
+public void setPublisher(String publisher) {
+ publisher_ = publisher;
+}
+
+public ArrayList<Payload> getData() {
+ return data_;
+}
+
+public void setData(ArrayList<Payload> data) {
+ data_ = data;
+}
+
+public void addData(Payload value) {
+ data_.add(value);
+}
+
+public String getNode() {
+ return node_;
+}
+
+public void setNode(String node) {
+ node_ = node;
+}
+
+public String getID() {
+ return id_;
+}
+
+public void setID(String id) {
+ id_ = id;
+}
+
+String publisher_;
+ArrayList<Payload> data_ = new ArrayList<Payload>();
+String node_;
+String id_;
+
+}
diff --git a/src/com/isode/stroke/elements/PubSubEventItems.java b/src/com/isode/stroke/elements/PubSubEventItems.java
new file mode 100644
index 0000000..f4865ff
--- /dev/null
+++ b/src/com/isode/stroke/elements/PubSubEventItems.java
@@ -0,0 +1,56 @@
+/*
+* Copyright (c) 2014, Isode Limited, London, England.
+* All rights reserved.
+*/
+/*
+* Copyright (c) 2014, Remko Tronçon.
+* All rights reserved.
+*/
+
+package com.isode.stroke.elements;
+
+import java.util.ArrayList;
+import com.isode.stroke.elements.PubSubEventPayload;
+
+public class PubSubEventItems extends PubSubEventPayload {
+
+public PubSubEventItems() {
+}
+
+public ArrayList<PubSubEventItem> getItems() {
+ return items_;
+}
+
+public void setItems(ArrayList<PubSubEventItem> items) {
+ items_ = items;
+}
+
+public void addItem(PubSubEventItem value) {
+ items_.add(value);
+}
+
+public String getNode() {
+ return node_;
+}
+
+public void setNode(String node) {
+ node_ = node;
+}
+
+public ArrayList<PubSubEventRetract> getRetracts() {
+ return retracts_;
+}
+
+public void setRetracts(ArrayList<PubSubEventRetract> retracts) {
+ retracts_ = retracts;
+}
+
+public void addRetract(PubSubEventRetract value) {
+ retracts_.add(value);
+}
+
+ArrayList<PubSubEventItem> items_ = new ArrayList<PubSubEventItem>();
+String node_;
+ArrayList<PubSubEventRetract> retracts_ = new ArrayList<PubSubEventRetract>();
+
+}
diff --git a/src/com/isode/stroke/elements/PubSubEventPayload.java b/src/com/isode/stroke/elements/PubSubEventPayload.java
new file mode 100644
index 0000000..d101c6c
--- /dev/null
+++ b/src/com/isode/stroke/elements/PubSubEventPayload.java
@@ -0,0 +1,14 @@
+/*
+* Copyright (c) 2014, Isode Limited, London, England.
+* All rights reserved.
+*/
+/*
+* Copyright (c) 2014, Remko Tronçon.
+* All rights reserved.
+*/
+
+package com.isode.stroke.elements;
+
+public class PubSubEventPayload extends Payload {
+
+}
diff --git a/src/com/isode/stroke/elements/PubSubEventPurge.java b/src/com/isode/stroke/elements/PubSubEventPurge.java
new file mode 100644
index 0000000..451ce09
--- /dev/null
+++ b/src/com/isode/stroke/elements/PubSubEventPurge.java
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2014, Isode Limited, London, England.
+* All rights reserved.
+*/
+/*
+* Copyright (c) 2014, Remko Tronçon.
+* All rights reserved.
+*/
+
+package com.isode.stroke.elements;
+
+import com.isode.stroke.elements.PubSubEventPayload;
+
+public class PubSubEventPurge extends PubSubEventPayload {
+
+public PubSubEventPurge() {
+}
+
+public String getNode() {
+ return node_;
+}
+
+public void setNode(String node) {
+ node_ = node;
+}
+
+String node_;
+
+}
diff --git a/src/com/isode/stroke/elements/PubSubEventRedirect.java b/src/com/isode/stroke/elements/PubSubEventRedirect.java
new file mode 100644
index 0000000..5f99b19
--- /dev/null
+++ b/src/com/isode/stroke/elements/PubSubEventRedirect.java
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2014, Isode Limited, London, England.
+* All rights reserved.
+*/
+/*
+* Copyright (c) 2014, Remko Tronçon.
+* All rights reserved.
+*/
+
+package com.isode.stroke.elements;
+
+import com.isode.stroke.elements.Payload;
+
+public class PubSubEventRedirect extends Payload {
+
+public PubSubEventRedirect() {
+}
+
+public String getURI() {
+ return uri_;
+}
+
+public void setURI(String uri) {
+ uri_ = uri;
+}
+
+String uri_;
+
+}
diff --git a/src/com/isode/stroke/elements/PubSubEventRetract.java b/src/com/isode/stroke/elements/PubSubEventRetract.java
new file mode 100644
index 0000000..4eba5ca
--- /dev/null
+++ b/src/com/isode/stroke/elements/PubSubEventRetract.java
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2014, Isode Limited, London, England.
+* All rights reserved.
+*/
+/*
+* Copyright (c) 2014, Remko Tronçon.
+* All rights reserved.
+*/
+
+package com.isode.stroke.elements;
+
+import com.isode.stroke.elements.Payload;
+
+public class PubSubEventRetract extends Payload {
+
+public PubSubEventRetract() {
+}
+
+public String getID() {
+ return id_;
+}
+
+public void setID(String id) {
+ id_ = id;
+}
+
+String id_;
+
+}
diff --git a/src/com/isode/stroke/elements/PubSubEventSubscription.java b/src/com/isode/stroke/elements/PubSubEventSubscription.java
new file mode 100644
index 0000000..7864a65
--- /dev/null
+++ b/src/com/isode/stroke/elements/PubSubEventSubscription.java
@@ -0,0 +1,74 @@
+/*
+* Copyright (c) 2014, Isode Limited, London, England.
+* All rights reserved.
+*/
+/*
+* Copyright (c) 2014, Remko Tronçon.
+* All rights reserved.
+*/
+
+package com.isode.stroke.elements;
+
+import com.isode.stroke.jid.JID;
+import java.util.Date;
+import com.isode.stroke.elements.PubSubEventPayload;
+
+public class PubSubEventSubscription extends PubSubEventPayload {
+public enum SubscriptionType
+{
+ None,
+ Pending,
+ Subscribed,
+ Unconfigured
+}
+
+public PubSubEventSubscription() {
+}
+
+public SubscriptionType getSubscription() {
+ return subscription_;
+}
+
+public void setSubscription(SubscriptionType subscription) {
+ subscription_ = subscription;
+}
+
+public String getSubscriptionID() {
+ return subscriptionID_;
+}
+
+public void setSubscriptionID(String subscriptionID) {
+ subscriptionID_ = subscriptionID;
+}
+
+public String getNode() {
+ return node_;
+}
+
+public void setNode(String node) {
+ node_ = node;
+}
+
+public JID getJID() {
+ return jid_;
+}
+
+public void setJID(JID jid) {
+ jid_ = jid;
+}
+
+public Date getExpiry() {
+ return expiry_;
+}
+
+public void setExpiry(Date expiry) {
+ expiry_ = expiry;
+}
+
+SubscriptionType subscription_;
+String subscriptionID_;
+String node_;
+JID jid_;
+Date expiry_;
+
+}
diff --git a/src/com/isode/stroke/elements/PubSubItem.java b/src/com/isode/stroke/elements/PubSubItem.java
new file mode 100644
index 0000000..91d0fe1
--- /dev/null
+++ b/src/com/isode/stroke/elements/PubSubItem.java
@@ -0,0 +1,43 @@
+/*
+* Copyright (c) 2014, Isode Limited, London, England.
+* All rights reserved.
+*/
+/*
+* Copyright (c) 2014, Remko Tronçon.
+* All rights reserved.
+*/
+
+package com.isode.stroke.elements;
+
+import java.util.ArrayList;
+import com.isode.stroke.elements.Payload;
+
+public class PubSubItem extends Payload {
+
+public PubSubItem() {
+}
+
+public ArrayList<Payload> getData() {
+ return data_;
+}
+
+public void setData(ArrayList<Payload> data) {
+ data_ = data;
+}
+
+public void addData(Payload value) {
+ data_.add(value);
+}
+
+public String getID() {
+ return id_;
+}
+
+public void setID(String id) {
+ id_ = id;
+}
+
+ArrayList<Payload> data_ = new ArrayList<Payload>();
+String id_;
+
+}
diff --git a/src/com/isode/stroke/elements/PubSubItems.java b/src/com/isode/stroke/elements/PubSubItems.java
new file mode 100644
index 0000000..ae675e4
--- /dev/null
+++ b/src/com/isode/stroke/elements/PubSubItems.java
@@ -0,0 +1,61 @@
+/*
+* Copyright (c) 2014, Isode Limited, London, England.
+* All rights reserved.
+*/
+/*
+* Copyright (c) 2014, Remko Tronçon.
+* All rights reserved.
+*/
+
+package com.isode.stroke.elements;
+
+import java.util.ArrayList;
+import com.isode.stroke.elements.PubSubPayload;
+
+public class PubSubItems extends PubSubPayload {
+
+public PubSubItems() {
+}
+
+public Long getMaximumItems() {
+ return maximumItems_;
+}
+
+public void setMaximumItems(Long maximumItems) {
+ maximumItems_ = maximumItems;
+}
+
+public ArrayList<PubSubItem> getItems() {
+ return items_;
+}
+
+public void setItems(ArrayList<PubSubItem> items) {
+ items_ = items;
+}
+
+public void addItem(PubSubItem value) {
+ items_.add(value);
+}
+
+public String getSubscriptionID() {
+ return subscriptionID_;
+}
+
+public void setSubscriptionID(String subscriptionID) {
+ subscriptionID_ = subscriptionID;
+}
+
+public String getNode() {
+ return node_;
+}
+
+public void setNode(String node) {
+ node_ = node;
+}
+
+Long maximumItems_;
+ArrayList<PubSubItem> items_ = new ArrayList<PubSubItem>();
+String subscriptionID_;
+String node_;
+
+}
diff --git a/src/com/isode/stroke/elements/PubSubOptions.java b/src/com/isode/stroke/elements/PubSubOptions.java
new file mode 100644
index 0000000..085baa7
--- /dev/null
+++ b/src/com/isode/stroke/elements/PubSubOptions.java
@@ -0,0 +1,58 @@
+/*
+* Copyright (c) 2014, Isode Limited, London, England.
+* All rights reserved.
+*/
+/*
+* Copyright (c) 2014, Remko Tronçon.
+* All rights reserved.
+*/
+
+package com.isode.stroke.elements;
+
+import com.isode.stroke.elements.Form;
+import com.isode.stroke.jid.JID;
+import com.isode.stroke.elements.PubSubPayload;
+
+public class PubSubOptions extends PubSubPayload {
+
+public PubSubOptions() {
+}
+
+public Form getData() {
+ return data_;
+}
+
+public void setData(Form data) {
+ data_ = data;
+}
+
+public String getSubscriptionID() {
+ return subscriptionID_;
+}
+
+public void setSubscriptionID(String subscriptionID) {
+ subscriptionID_ = subscriptionID;
+}
+
+public String getNode() {
+ return node_;
+}
+
+public void setNode(String node) {
+ node_ = node;
+}
+
+public JID getJID() {
+ return jid_;
+}
+
+public void setJID(JID jid) {
+ jid_ = jid;
+}
+
+Form data_;
+String subscriptionID_;
+String node_;
+JID jid_;
+
+}
diff --git a/src/com/isode/stroke/elements/PubSubOwnerAffiliation.java b/src/com/isode/stroke/elements/PubSubOwnerAffiliation.java
new file mode 100644
index 0000000..d08bd3d
--- /dev/null
+++ b/src/com/isode/stroke/elements/PubSubOwnerAffiliation.java
@@ -0,0 +1,48 @@
+/*
+* Copyright (c) 2014, Isode Limited, London, England.
+* All rights reserved.
+*/
+/*
+* Copyright (c) 2014, Remko Tronçon.
+* All rights reserved.
+*/
+
+package com.isode.stroke.elements;
+
+import com.isode.stroke.jid.JID;
+import com.isode.stroke.elements.Payload;
+
+public class PubSubOwnerAffiliation extends Payload {
+public enum Type
+{
+ None,
+ Member,
+ Outcast,
+ Owner,
+ Publisher,
+ PublishOnly
+}
+
+public PubSubOwnerAffiliation() {
+}
+
+public JID getJID() {
+ return jid_;
+}
+
+public void setJID(JID jid) {
+ jid_ = jid;
+}
+
+public Type getType() {
+ return type_;
+}
+
+public void setType(Type type) {
+ type_ = type;
+}
+
+JID jid_;
+Type type_;
+
+}
diff --git a/src/com/isode/stroke/elements/PubSubOwnerAffiliations.java b/src/com/isode/stroke/elements/PubSubOwnerAffiliations.java
new file mode 100644
index 0000000..25973f8
--- /dev/null
+++ b/src/com/isode/stroke/elements/PubSubOwnerAffiliations.java
@@ -0,0 +1,43 @@
+/*
+* Copyright (c) 2014, Isode Limited, London, England.
+* All rights reserved.
+*/
+/*
+* Copyright (c) 2014, Remko Tronçon.
+* All rights reserved.
+*/
+
+package com.isode.stroke.elements;
+
+import java.util.ArrayList;
+import com.isode.stroke.elements.PubSubOwnerPayload;
+
+public class PubSubOwnerAffiliations extends PubSubOwnerPayload {
+
+public PubSubOwnerAffiliations() {
+}
+
+public String getNode() {
+ return node_;
+}
+
+public void setNode(String node) {
+ node_ = node;
+}
+
+public ArrayList<PubSubOwnerAffiliation> getAffiliations() {
+ return affiliations_;
+}
+
+public void setAffiliations(ArrayList<PubSubOwnerAffiliation> affiliations) {
+ affiliations_ = affiliations;
+}
+
+public void addAffiliation(PubSubOwnerAffiliation value) {
+ affiliations_.add(value);
+}
+
+String node_;
+ArrayList<PubSubOwnerAffiliation> affiliations_ = new ArrayList<PubSubOwnerAffiliation>();
+
+}
diff --git a/src/com/isode/stroke/elements/PubSubOwnerConfigure.java b/src/com/isode/stroke/elements/PubSubOwnerConfigure.java
new file mode 100644
index 0000000..2807039
--- /dev/null
+++ b/src/com/isode/stroke/elements/PubSubOwnerConfigure.java
@@ -0,0 +1,39 @@
+/*
+* Copyright (c) 2014, Isode Limited, London, England.
+* All rights reserved.
+*/
+/*
+* Copyright (c) 2014, Remko Tronçon.
+* All rights reserved.
+*/
+
+package com.isode.stroke.elements;
+
+import com.isode.stroke.elements.Form;
+import com.isode.stroke.elements.PubSubOwnerPayload;
+
+public class PubSubOwnerConfigure extends PubSubOwnerPayload {
+
+public PubSubOwnerConfigure() {
+}
+
+public Form getData() {
+ return data_;
+}
+
+public void setData(Form data) {
+ data_ = data;
+}
+
+public String getNode() {
+ return node_;
+}
+
+public void setNode(String node) {
+ node_ = node;
+}
+
+Form data_;
+String node_;
+
+}
diff --git a/src/com/isode/stroke/elements/PubSubOwnerDefault.java b/src/com/isode/stroke/elements/PubSubOwnerDefault.java
new file mode 100644
index 0000000..5f9c179
--- /dev/null
+++ b/src/com/isode/stroke/elements/PubSubOwnerDefault.java
@@ -0,0 +1,30 @@
+/*
+* Copyright (c) 2014, Isode Limited, London, England.
+* All rights reserved.
+*/
+/*
+* Copyright (c) 2014, Remko Tronçon.
+* All rights reserved.
+*/
+
+package com.isode.stroke.elements;
+
+import com.isode.stroke.elements.Form;
+import com.isode.stroke.elements.PubSubOwnerPayload;
+
+public class PubSubOwnerDefault extends PubSubOwnerPayload {
+
+public PubSubOwnerDefault() {
+}
+
+public Form getData() {
+ return data_;
+}
+
+public void setData(Form data) {
+ data_ = data;
+}
+
+Form data_;
+
+}
diff --git a/src/com/isode/stroke/elements/PubSubOwnerDelete.java b/src/com/isode/stroke/elements/PubSubOwnerDelete.java
new file mode 100644
index 0000000..a791fad
--- /dev/null
+++ b/src/com/isode/stroke/elements/PubSubOwnerDelete.java
@@ -0,0 +1,38 @@
+/*
+* Copyright (c) 2014, Isode Limited, London, England.
+* All rights reserved.
+*/
+/*
+* Copyright (c) 2014, Remko Tronçon.
+* All rights reserved.
+*/
+
+package com.isode.stroke.elements;
+
+import com.isode.stroke.elements.PubSubOwnerPayload;
+
+public class PubSubOwnerDelete extends PubSubOwnerPayload {
+
+public PubSubOwnerDelete() {
+}
+
+public PubSubOwnerRedirect getRedirect() {
+ return redirect_;
+}
+
+public void setRedirect(PubSubOwnerRedirect redirect) {
+ redirect_ = redirect;
+}
+
+public String getNode() {
+ return node_;
+}
+
+public void setNode(String node) {
+ node_ = node;
+}
+
+PubSubOwnerRedirect redirect_;
+String node_;
+
+}
diff --git a/src/com/isode/stroke/elements/PubSubOwnerPayload.java b/src/com/isode/stroke/elements/PubSubOwnerPayload.java
new file mode 100644
index 0000000..50d3775
--- /dev/null
+++ b/src/com/isode/stroke/elements/PubSubOwnerPayload.java
@@ -0,0 +1,14 @@
+/*
+* Copyright (c) 2014, Isode Limited, London, England.
+* All rights reserved.
+*/
+/*
+* Copyright (c) 2014, Remko Tronçon.
+* All rights reserved.
+*/
+
+package com.isode.stroke.elements;
+
+public class PubSubOwnerPayload extends Payload {
+
+}
diff --git a/src/com/isode/stroke/elements/PubSubOwnerPubSub.java b/src/com/isode/stroke/elements/PubSubOwnerPubSub.java
new file mode 100644
index 0000000..63fd592
--- /dev/null
+++ b/src/com/isode/stroke/elements/PubSubOwnerPubSub.java
@@ -0,0 +1,14 @@
+/*
+* Copyright (c) 2014, Isode Limited, London, England.
+* All rights reserved.
+*/
+/*
+* Copyright (c) 2014, Remko Tronçon.
+* All rights reserved.
+*/
+
+package com.isode.stroke.elements;
+
+public class PubSubOwnerPubSub extends ContainerPayload<PubSubOwnerPayload> {
+
+}
diff --git a/src/com/isode/stroke/elements/PubSubOwnerPurge.java b/src/com/isode/stroke/elements/PubSubOwnerPurge.java
new file mode 100644
index 0000000..0a9abc7
--- /dev/null
+++ b/src/com/isode/stroke/elements/PubSubOwnerPurge.java
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2014, Isode Limited, London, England.
+* All rights reserved.
+*/
+/*
+* Copyright (c) 2014, Remko Tronçon.
+* All rights reserved.
+*/
+
+package com.isode.stroke.elements;
+
+import com.isode.stroke.elements.PubSubOwnerPayload;
+
+public class PubSubOwnerPurge extends PubSubOwnerPayload {
+
+public PubSubOwnerPurge() {
+}
+
+public String getNode() {
+ return node_;
+}
+
+public void setNode(String node) {
+ node_ = node;
+}
+
+String node_;
+
+}
diff --git a/src/com/isode/stroke/elements/PubSubOwnerRedirect.java b/src/com/isode/stroke/elements/PubSubOwnerRedirect.java
new file mode 100644
index 0000000..c5bda3c
--- /dev/null
+++ b/src/com/isode/stroke/elements/PubSubOwnerRedirect.java
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2014, Isode Limited, London, England.
+* All rights reserved.
+*/
+/*
+* Copyright (c) 2014, Remko Tronçon.
+* All rights reserved.
+*/
+
+package com.isode.stroke.elements;
+
+import com.isode.stroke.elements.Payload;
+
+public class PubSubOwnerRedirect extends Payload {
+
+public PubSubOwnerRedirect() {
+}
+
+public String getURI() {
+ return uri_;
+}
+
+public void setURI(String uri) {
+ uri_ = uri;
+}
+
+String uri_;
+
+}
diff --git a/src/com/isode/stroke/elements/PubSubOwnerSubscription.java b/src/com/isode/stroke/elements/PubSubOwnerSubscription.java
new file mode 100644
index 0000000..2845ffc
--- /dev/null
+++ b/src/com/isode/stroke/elements/PubSubOwnerSubscription.java
@@ -0,0 +1,46 @@
+/*
+* Copyright (c) 2014, Isode Limited, London, England.
+* All rights reserved.
+*/
+/*
+* Copyright (c) 2014, Remko Tronçon.
+* All rights reserved.
+*/
+
+package com.isode.stroke.elements;
+
+import com.isode.stroke.jid.JID;
+import com.isode.stroke.elements.Payload;
+
+public class PubSubOwnerSubscription extends Payload {
+public enum SubscriptionType
+{
+ None,
+ Pending,
+ Subscribed,
+ Unconfigured
+}
+
+public PubSubOwnerSubscription() {
+}
+
+public SubscriptionType getSubscription() {
+ return subscription_;
+}
+
+public void setSubscription(SubscriptionType subscription) {
+ subscription_ = subscription;
+}
+
+public JID getJID() {
+ return jid_;
+}
+
+public void setJID(JID jid) {
+ jid_ = jid;
+}
+
+SubscriptionType subscription_;
+JID jid_;
+
+}
diff --git a/src/com/isode/stroke/elements/PubSubOwnerSubscriptions.java b/src/com/isode/stroke/elements/PubSubOwnerSubscriptions.java
new file mode 100644
index 0000000..bd84a2d
--- /dev/null
+++ b/src/com/isode/stroke/elements/PubSubOwnerSubscriptions.java
@@ -0,0 +1,43 @@
+/*
+* Copyright (c) 2014, Isode Limited, London, England.
+* All rights reserved.
+*/
+/*
+* Copyright (c) 2014, Remko Tronçon.
+* All rights reserved.
+*/
+
+package com.isode.stroke.elements;
+
+import java.util.ArrayList;
+import com.isode.stroke.elements.PubSubOwnerPayload;
+
+public class PubSubOwnerSubscriptions extends PubSubOwnerPayload {
+
+public PubSubOwnerSubscriptions() {
+}
+
+public ArrayList<PubSubOwnerSubscription> getSubscriptions() {
+ return subscriptions_;
+}
+
+public void setSubscriptions(ArrayList<PubSubOwnerSubscription> subscriptions) {
+ subscriptions_ = subscriptions;
+}
+
+public void addSubscription(PubSubOwnerSubscription value) {
+ subscriptions_.add(value);
+}
+
+public String getNode() {
+ return node_;
+}
+
+public void setNode(String node) {
+ node_ = node;
+}
+
+ArrayList<PubSubOwnerSubscription> subscriptions_ = new ArrayList<PubSubOwnerSubscription>();
+String node_;
+
+}
diff --git a/src/com/isode/stroke/elements/PubSubPayload.java b/src/com/isode/stroke/elements/PubSubPayload.java
new file mode 100644
index 0000000..14d36b5
--- /dev/null
+++ b/src/com/isode/stroke/elements/PubSubPayload.java
@@ -0,0 +1,14 @@
+/*
+* Copyright (c) 2014, Isode Limited, London, England.
+* All rights reserved.
+*/
+/*
+* Copyright (c) 2014, Remko Tronçon.
+* All rights reserved.
+*/
+
+package com.isode.stroke.elements;
+
+public class PubSubPayload extends Payload {
+
+}
diff --git a/src/com/isode/stroke/elements/PubSubPublish.java b/src/com/isode/stroke/elements/PubSubPublish.java
new file mode 100644
index 0000000..987ba83
--- /dev/null
+++ b/src/com/isode/stroke/elements/PubSubPublish.java
@@ -0,0 +1,43 @@
+/*
+* Copyright (c) 2014, Isode Limited, London, England.
+* All rights reserved.
+*/
+/*
+* Copyright (c) 2014, Remko Tronçon.
+* All rights reserved.
+*/
+
+package com.isode.stroke.elements;
+
+import java.util.ArrayList;
+import com.isode.stroke.elements.PubSubPayload;
+
+public class PubSubPublish extends PubSubPayload {
+
+public PubSubPublish() {
+}
+
+public ArrayList<PubSubItem> getItems() {
+ return items_;
+}
+
+public void setItems(ArrayList<PubSubItem> items) {
+ items_ = items;
+}
+
+public void addItem(PubSubItem value) {
+ items_.add(value);
+}
+
+public String getNode() {
+ return node_;
+}
+
+public void setNode(String node) {
+ node_ = node;
+}
+
+ArrayList<PubSubItem> items_ = new ArrayList<PubSubItem>();
+String node_;
+
+}
diff --git a/src/com/isode/stroke/elements/PubSubRetract.java b/src/com/isode/stroke/elements/PubSubRetract.java
new file mode 100644
index 0000000..d8349ea
--- /dev/null
+++ b/src/com/isode/stroke/elements/PubSubRetract.java
@@ -0,0 +1,52 @@
+/*
+* Copyright (c) 2014, Isode Limited, London, England.
+* All rights reserved.
+*/
+/*
+* Copyright (c) 2014, Remko Tronçon.
+* All rights reserved.
+*/
+
+package com.isode.stroke.elements;
+
+import java.util.ArrayList;
+import com.isode.stroke.elements.PubSubPayload;
+
+public class PubSubRetract extends PubSubPayload {
+
+public PubSubRetract() {
+}
+
+public ArrayList<PubSubItem> getItems() {
+ return items_;
+}
+
+public void setItems(ArrayList<PubSubItem> items) {
+ items_ = items;
+}
+
+public void addItem(PubSubItem value) {
+ items_.add(value);
+}
+
+public String getNode() {
+ return node_;
+}
+
+public void setNode(String node) {
+ node_ = node;
+}
+
+public boolean isNotify() {
+ return notify_;
+}
+
+public void setNotify(boolean notify) {
+ notify_ = notify;
+}
+
+ArrayList<PubSubItem> items_ = new ArrayList<PubSubItem>();
+String node_;
+boolean notify_;
+
+}
diff --git a/src/com/isode/stroke/elements/PubSubSubscribe.java b/src/com/isode/stroke/elements/PubSubSubscribe.java
new file mode 100644
index 0000000..d822bd5
--- /dev/null
+++ b/src/com/isode/stroke/elements/PubSubSubscribe.java
@@ -0,0 +1,48 @@
+/*
+* Copyright (c) 2014, Isode Limited, London, England.
+* All rights reserved.
+*/
+/*
+* Copyright (c) 2014, Remko Tronçon.
+* All rights reserved.
+*/
+
+package com.isode.stroke.elements;
+
+import com.isode.stroke.jid.JID;
+import com.isode.stroke.elements.PubSubPayload;
+
+public class PubSubSubscribe extends PubSubPayload {
+
+public PubSubSubscribe() {
+}
+
+public String getNode() {
+ return node_;
+}
+
+public void setNode(String node) {
+ node_ = node;
+}
+
+public JID getJID() {
+ return jid_;
+}
+
+public void setJID(JID jid) {
+ jid_ = jid;
+}
+
+public PubSubOptions getOptions() {
+ return options_;
+}
+
+public void setOptions(PubSubOptions options) {
+ options_ = options;
+}
+
+String node_;
+JID jid_;
+PubSubOptions options_;
+
+}
diff --git a/src/com/isode/stroke/elements/PubSubSubscribeOptions.java b/src/com/isode/stroke/elements/PubSubSubscribeOptions.java
new file mode 100644
index 0000000..54fd72e
--- /dev/null
+++ b/src/com/isode/stroke/elements/PubSubSubscribeOptions.java
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2014, Isode Limited, London, England.
+* All rights reserved.
+*/
+/*
+* Copyright (c) 2014, Remko Tronçon.
+* All rights reserved.
+*/
+
+package com.isode.stroke.elements;
+
+import com.isode.stroke.elements.Payload;
+
+public class PubSubSubscribeOptions extends Payload {
+
+public PubSubSubscribeOptions() {
+}
+
+public boolean isRequired() {
+ return required_;
+}
+
+public void setRequired(boolean required) {
+ required_ = required;
+}
+
+boolean required_;
+
+}
diff --git a/src/com/isode/stroke/elements/PubSubSubscription.java b/src/com/isode/stroke/elements/PubSubSubscription.java
new file mode 100644
index 0000000..78d9c17
--- /dev/null
+++ b/src/com/isode/stroke/elements/PubSubSubscription.java
@@ -0,0 +1,73 @@
+/*
+* Copyright (c) 2014, Isode Limited, London, England.
+* All rights reserved.
+*/
+/*
+* Copyright (c) 2014, Remko Tronçon.
+* All rights reserved.
+*/
+
+package com.isode.stroke.elements;
+
+import com.isode.stroke.jid.JID;
+import com.isode.stroke.elements.PubSubPayload;
+
+public class PubSubSubscription extends PubSubPayload {
+public enum SubscriptionType
+{
+ None,
+ Pending,
+ Subscribed,
+ Unconfigured
+}
+
+public PubSubSubscription() {
+}
+
+public SubscriptionType getSubscription() {
+ return subscription_;
+}
+
+public void setSubscription(SubscriptionType subscription) {
+ subscription_ = subscription;
+}
+
+public String getSubscriptionID() {
+ return subscriptionID_;
+}
+
+public void setSubscriptionID(String subscriptionID) {
+ subscriptionID_ = subscriptionID;
+}
+
+public String getNode() {
+ return node_;
+}
+
+public void setNode(String node) {
+ node_ = node;
+}
+
+public JID getJID() {
+ return jid_;
+}
+
+public void setJID(JID jid) {
+ jid_ = jid;
+}
+
+public PubSubSubscribeOptions getOptions() {
+ return options_;
+}
+
+public void setOptions(PubSubSubscribeOptions options) {
+ options_ = options;
+}
+
+SubscriptionType subscription_;
+String subscriptionID_;
+String node_;
+JID jid_;
+PubSubSubscribeOptions options_;
+
+}
diff --git a/src/com/isode/stroke/elements/PubSubSubscriptions.java b/src/com/isode/stroke/elements/PubSubSubscriptions.java
new file mode 100644
index 0000000..23bb223
--- /dev/null
+++ b/src/com/isode/stroke/elements/PubSubSubscriptions.java
@@ -0,0 +1,43 @@
+/*
+* Copyright (c) 2014, Isode Limited, London, England.
+* All rights reserved.
+*/
+/*
+* Copyright (c) 2014, Remko Tronçon.
+* All rights reserved.
+*/
+
+package com.isode.stroke.elements;
+
+import java.util.ArrayList;
+import com.isode.stroke.elements.PubSubPayload;
+
+public class PubSubSubscriptions extends PubSubPayload {
+
+public PubSubSubscriptions() {
+}
+
+public ArrayList<PubSubSubscription> getSubscriptions() {
+ return subscriptions_;
+}
+
+public void setSubscriptions(ArrayList<PubSubSubscription> subscriptions) {
+ subscriptions_ = subscriptions;
+}
+
+public void addSubscription(PubSubSubscription value) {
+ subscriptions_.add(value);
+}
+
+public String getNode() {
+ return node_;
+}
+
+public void setNode(String node) {
+ node_ = node;
+}
+
+ArrayList<PubSubSubscription> subscriptions_ = new ArrayList<PubSubSubscription>();
+String node_;
+
+}
diff --git a/src/com/isode/stroke/elements/PubSubUnsubscribe.java b/src/com/isode/stroke/elements/PubSubUnsubscribe.java
new file mode 100644
index 0000000..f8d1fae
--- /dev/null
+++ b/src/com/isode/stroke/elements/PubSubUnsubscribe.java
@@ -0,0 +1,48 @@
+/*
+* Copyright (c) 2014, Isode Limited, London, England.
+* All rights reserved.
+*/
+/*
+* Copyright (c) 2014, Remko Tronçon.
+* All rights reserved.
+*/
+
+package com.isode.stroke.elements;
+
+import com.isode.stroke.jid.JID;
+import com.isode.stroke.elements.PubSubPayload;
+
+public class PubSubUnsubscribe extends PubSubPayload {
+
+public PubSubUnsubscribe() {
+}
+
+public String getSubscriptionID() {
+ return subscriptionID_;
+}
+
+public void setSubscriptionID(String subscriptionID) {
+ subscriptionID_ = subscriptionID;
+}
+
+public String getNode() {
+ return node_;
+}
+
+public void setNode(String node) {
+ node_ = node;
+}
+
+public JID getJID() {
+ return jid_;
+}
+
+public void setJID(JID jid) {
+ jid_ = jid;
+}
+
+String subscriptionID_;
+String node_;
+JID jid_;
+
+}