diff --git a/CHANGELOG.md b/CHANGELOG.md index d1f7da2..c3f047e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## [v1.1.3-SNAPSHOT] - 2022-05-02 +## [v1.1.5-SNAPSHOT] - 2022-05-02 - Partially added support for workspace notifications diff --git a/pom.xml b/pom.xml index f47e805..3ba2a95 100644 --- a/pom.xml +++ b/pom.xml @@ -12,7 +12,7 @@ org.gcube.social-networking social-service-model - 1.1.3-SNAPSHOT + 1.1.5-SNAPSHOT jar social-networking-service-model Social networking service model classes @@ -55,6 +55,19 @@ + + + com.webcohesion.enunciate + enunciate-core-annotations + ${enunciate.version} + provided + + + com.webcohesion.enunciate + enunciate-rt-util + ${enunciate.version} + provided + org.gcube.common storagehub-model diff --git a/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotification.java b/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotification.java index 615db32..90ce9a0 100644 --- a/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotification.java +++ b/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotification.java @@ -1,8 +1,26 @@ package org.gcube.social_networking.socialnetworking.model.beans; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.JsonTypeInfo.As; +/** + * The WorkspaceNotification super class + */ @JsonIgnoreProperties(ignoreUnknown = true) -public interface WorkspaceNotification { +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, +include = As.PROPERTY, property = "type") @JsonSubTypes({ +@JsonSubTypes.Type(value = WorkspaceNotificationSharedFolder.class, name = "FOLDER_SHARE"), +@JsonSubTypes.Type(value = WorkspaceNotificationUnsharedFolder.class, name = "FOLDER_UNSHARE"), +@JsonSubTypes.Type(value = WorkspaceNotificationAddedItem.class, name = "ITEM_NEW") +}) +public abstract class WorkspaceNotification { + WorkspaceNotificationType type; + public WorkspaceNotificationType getType() { + return type; + } + + } diff --git a/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotificationAddedItem.java b/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotificationAddedItem.java index e8b70b9..57e1e9d 100644 --- a/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotificationAddedItem.java +++ b/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotificationAddedItem.java @@ -7,7 +7,8 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeName; @JsonIgnoreProperties(ignoreUnknown=true) -public class WorkspaceNotificationAddedItem implements WorkspaceNotification { +@JsonTypeName("ITEM_NEW") +public class WorkspaceNotificationAddedItem extends WorkspaceNotification { /** * the username of the user you wish to notify */ diff --git a/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotificationMessage.java b/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotificationMessage.java deleted file mode 100644 index 49ee44c..0000000 --- a/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotificationMessage.java +++ /dev/null @@ -1,37 +0,0 @@ -package org.gcube.social_networking.socialnetworking.model.beans; - -import com.fasterxml.jackson.annotation.JsonTypeInfo; - -public class WorkspaceNotificationMessage { - - private WorkspaceNotificationType type; - - @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS) - private WorkspaceNotification bean; - - public WorkspaceNotificationMessage() { - super(); - } - - public WorkspaceNotificationMessage(WorkspaceNotificationType type, WorkspaceNotification bean) { - super(); - this.type = type; - this.bean = bean; - } - - public WorkspaceNotificationType getType() { - return type; - } - - public WorkspaceNotification getBean() { - return bean; - } - - public void setType(WorkspaceNotificationType type) { - this.type = type; - } - - public void setBean(WorkspaceNotification bean) { - this.bean = bean; - } -} diff --git a/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotificationSharedFolder.java b/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotificationSharedFolder.java index 7ea3591..5e9a48f 100644 --- a/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotificationSharedFolder.java +++ b/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotificationSharedFolder.java @@ -8,7 +8,8 @@ import com.fasterxml.jackson.annotation.JsonTypeName; @JsonIgnoreProperties(ignoreUnknown=true) -public class WorkspaceNotificationSharedFolder implements WorkspaceNotification { +@JsonTypeName("SHARED_FOLDER") +public class WorkspaceNotificationSharedFolder extends WorkspaceNotification { /** * the username of the user you wish to notify diff --git a/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotificationUnsharedFolder.java b/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotificationUnsharedFolder.java index 566e4c0..534ee57 100644 --- a/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotificationUnsharedFolder.java +++ b/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotificationUnsharedFolder.java @@ -7,7 +7,8 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeName; @JsonIgnoreProperties(ignoreUnknown=true) -public class WorkspaceNotificationUnsharedFolder implements WorkspaceNotification { +@JsonTypeName("UNSHARED_FOLDER") +public class WorkspaceNotificationUnsharedFolder extends WorkspaceNotification { /** * the username of the user you wish to notify