From bb0d641c123eab0940082723327733799f1ca871 Mon Sep 17 00:00:00 2001 From: "lucio.lelii" Date: Wed, 23 Dec 2020 10:42:50 +0100 Subject: [PATCH] report model added --- .classpath | 2 +- .../model/collectors/BackendConnector.java | 21 -------- .../model/collectors/CollectorsBackend.java | 22 +++++++++ .../operators/context/ContextOperator.java | 12 +++-- .../context/MandatoryContextOperator.java | 7 +++ .../model/report/OperationResult.java | 42 ++++++++++++++++ .../contextmanager/model/report/Report.java | 14 ++++++ .../model/report/ReportEntry.java | 48 +++++++++++++++++++ .../model/report/ReportGroup.java | 31 ++++++++++++ .../model/report/ReportOperation.java | 5 ++ .../contextmanager/model/types/Context.java | 8 +++- 11 files changed, 185 insertions(+), 27 deletions(-) delete mode 100644 src/main/java/org/gcube/vremanagement/contextmanager/model/collectors/BackendConnector.java create mode 100644 src/main/java/org/gcube/vremanagement/contextmanager/model/collectors/CollectorsBackend.java create mode 100644 src/main/java/org/gcube/vremanagement/contextmanager/model/report/OperationResult.java create mode 100644 src/main/java/org/gcube/vremanagement/contextmanager/model/report/Report.java create mode 100644 src/main/java/org/gcube/vremanagement/contextmanager/model/report/ReportEntry.java create mode 100644 src/main/java/org/gcube/vremanagement/contextmanager/model/report/ReportGroup.java create mode 100644 src/main/java/org/gcube/vremanagement/contextmanager/model/report/ReportOperation.java diff --git a/.classpath b/.classpath index 150c2ef..502bd4a 100644 --- a/.classpath +++ b/.classpath @@ -21,7 +21,7 @@ - + diff --git a/src/main/java/org/gcube/vremanagement/contextmanager/model/collectors/BackendConnector.java b/src/main/java/org/gcube/vremanagement/contextmanager/model/collectors/BackendConnector.java deleted file mode 100644 index 90344ce..0000000 --- a/src/main/java/org/gcube/vremanagement/contextmanager/model/collectors/BackendConnector.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.gcube.vremanagement.contextmanager.model.collectors; - -import java.util.List; - -import org.gcube.common.resources.gcore.Resource; - -public interface BackendConnector { - - Resource find(String resourceId); - - String createContext(String contextName, String parentContextId, List resourceIds); - - boolean removeContext(String contextId); - - boolean addResourceToContext(String contextId, Resource resource); - - boolean removeResourceFromContext(String contextId, Resource resource); - - boolean updateResource(Resource resource); - -} diff --git a/src/main/java/org/gcube/vremanagement/contextmanager/model/collectors/CollectorsBackend.java b/src/main/java/org/gcube/vremanagement/contextmanager/model/collectors/CollectorsBackend.java new file mode 100644 index 0000000..4dae61b --- /dev/null +++ b/src/main/java/org/gcube/vremanagement/contextmanager/model/collectors/CollectorsBackend.java @@ -0,0 +1,22 @@ +package org.gcube.vremanagement.contextmanager.model.collectors; + +import java.util.List; + +import org.gcube.common.resources.gcore.Resource; +import org.gcube.vremanagement.contextmanager.model.types.Context; + +public interface CollectorsBackend { + + Resource find(String resourceId); + + void createContext(Context context, String parentContextId, List resourceIds); + + boolean removeContext(Context context); + + boolean addResourceToContext(Context context, Resource resource) throws Exception; + + boolean removeResourceFromContext(Context context, Resource resource); + + boolean updateResource(Resource resource); + +} diff --git a/src/main/java/org/gcube/vremanagement/contextmanager/model/operators/context/ContextOperator.java b/src/main/java/org/gcube/vremanagement/contextmanager/model/operators/context/ContextOperator.java index 3c208d1..711aa6a 100644 --- a/src/main/java/org/gcube/vremanagement/contextmanager/model/operators/context/ContextOperator.java +++ b/src/main/java/org/gcube/vremanagement/contextmanager/model/operators/context/ContextOperator.java @@ -1,11 +1,15 @@ package org.gcube.vremanagement.contextmanager.model.operators.context; -import org.gcube.vremanagement.contextmanager.model.operators.OperationParameters; +import org.gcube.vremanagement.contextmanager.model.types.Context; -public abstract interface ContextOperator { +public interface ContextOperator { - public void onCreateContext(String token, String context, OperationParameters parameters); + Context.Type getApplicationContextType(); - public void onDisposeContext(String token, String context, OperationParameters parameters); + String getOperationId(); + + String getName(); + + String getDescription(); } diff --git a/src/main/java/org/gcube/vremanagement/contextmanager/model/operators/context/MandatoryContextOperator.java b/src/main/java/org/gcube/vremanagement/contextmanager/model/operators/context/MandatoryContextOperator.java index cd4aff1..4224166 100644 --- a/src/main/java/org/gcube/vremanagement/contextmanager/model/operators/context/MandatoryContextOperator.java +++ b/src/main/java/org/gcube/vremanagement/contextmanager/model/operators/context/MandatoryContextOperator.java @@ -1,5 +1,12 @@ package org.gcube.vremanagement.contextmanager.model.operators.context; +import org.gcube.vremanagement.contextmanager.model.report.OperationResult; +import org.gcube.vremanagement.contextmanager.model.types.Context; + public interface MandatoryContextOperator extends ContextOperator { + OperationResult onCreate(Context context); + + OperationResult onDispose(Context context); + } diff --git a/src/main/java/org/gcube/vremanagement/contextmanager/model/report/OperationResult.java b/src/main/java/org/gcube/vremanagement/contextmanager/model/report/OperationResult.java new file mode 100644 index 0000000..6010f24 --- /dev/null +++ b/src/main/java/org/gcube/vremanagement/contextmanager/model/report/OperationResult.java @@ -0,0 +1,42 @@ +package org.gcube.vremanagement.contextmanager.model.report; + +import java.util.Arrays; +import java.util.List; + +public class OperationResult { + + public static OperationResult failure(String... errors ){ + return new OperationResult(Arrays.asList(errors)); + } + + public static OperationResult success(){ + return new OperationResult(); + } + + public enum Status { + SUCCESS, + FAILURE + } + + private Status status; + private List errors; + + private OperationResult() { + this.status = Status.SUCCESS; + } + + private OperationResult(List errors) { + super(); + this.status = Status.FAILURE; + } + + + public boolean isSuccess() { + return status==Status.SUCCESS; + } + + public List getErrors() { + return errors; + } + +} diff --git a/src/main/java/org/gcube/vremanagement/contextmanager/model/report/Report.java b/src/main/java/org/gcube/vremanagement/contextmanager/model/report/Report.java new file mode 100644 index 0000000..81d9f38 --- /dev/null +++ b/src/main/java/org/gcube/vremanagement/contextmanager/model/report/Report.java @@ -0,0 +1,14 @@ +package org.gcube.vremanagement.contextmanager.model.report; + +import java.util.LinkedList; +import java.util.List; + +public class Report { + + String contextName; + String contextType; + + private List entries = new LinkedList<>(); + + +} diff --git a/src/main/java/org/gcube/vremanagement/contextmanager/model/report/ReportEntry.java b/src/main/java/org/gcube/vremanagement/contextmanager/model/report/ReportEntry.java new file mode 100644 index 0000000..2832a10 --- /dev/null +++ b/src/main/java/org/gcube/vremanagement/contextmanager/model/report/ReportEntry.java @@ -0,0 +1,48 @@ +package org.gcube.vremanagement.contextmanager.model.report; + +import org.gcube.vremanagement.contextmanager.model.operators.OperationParameters; + +public class ReportEntry implements ReportOperation{ + + private String operationId; + private String name; + private String description; + private OperationParameters parameters; + private OperationResult result; + + protected ReportEntry() {} + + public ReportEntry(String operationId, String name, String description, OperationResult result) { + super(); + this.operationId = operationId; + this.name = name; + this.description = description; + this.result = result; + } + + public ReportEntry(String operationId, String name, String description, OperationResult result, OperationParameters parameters) { + this(operationId, name, description, result); + this.parameters = parameters; + } + + public String getOperationId() { + return operationId; + } + + public String getName() { + return name; + } + + public String getDescription() { + return description; + } + + public OperationParameters getParameters() { + return parameters; + } + + public OperationResult getResult() { + return result; + } + +} diff --git a/src/main/java/org/gcube/vremanagement/contextmanager/model/report/ReportGroup.java b/src/main/java/org/gcube/vremanagement/contextmanager/model/report/ReportGroup.java new file mode 100644 index 0000000..b4e5c23 --- /dev/null +++ b/src/main/java/org/gcube/vremanagement/contextmanager/model/report/ReportGroup.java @@ -0,0 +1,31 @@ +package org.gcube.vremanagement.contextmanager.model.report; + +import java.util.LinkedList; +import java.util.List; + +public class ReportGroup implements ReportOperation{ + + private String name; + private String description; + + protected ReportGroup() {} + + private List entries = new LinkedList<>(); + + public ReportGroup(String name, String description) { + this.name = name; + this.description = description; + } + + public String getName() { + return name; + } + + public String getDescription() { + return description; + } + + public void addEntry(ReportEntry entry) { + entries.add(entry); + } +} diff --git a/src/main/java/org/gcube/vremanagement/contextmanager/model/report/ReportOperation.java b/src/main/java/org/gcube/vremanagement/contextmanager/model/report/ReportOperation.java new file mode 100644 index 0000000..ce40cbd --- /dev/null +++ b/src/main/java/org/gcube/vremanagement/contextmanager/model/report/ReportOperation.java @@ -0,0 +1,5 @@ +package org.gcube.vremanagement.contextmanager.model.report; + +public interface ReportOperation { + +} diff --git a/src/main/java/org/gcube/vremanagement/contextmanager/model/types/Context.java b/src/main/java/org/gcube/vremanagement/contextmanager/model/types/Context.java index 506583d..aac91b9 100644 --- a/src/main/java/org/gcube/vremanagement/contextmanager/model/types/Context.java +++ b/src/main/java/org/gcube/vremanagement/contextmanager/model/types/Context.java @@ -4,6 +4,7 @@ public class Context { private String id; private String name; + private Context parent; public enum Type { INFRASTRUCTURE(null), @@ -23,11 +24,12 @@ public class Context { private Type type; - public Context(String id, String name, Type type) { + public Context(Context parent, String id, String name, Type type) { super(); this.id = id; this.name = name; this.type = type; + this.parent = parent; } public String getId() { @@ -41,6 +43,10 @@ public class Context { public Type getType() { return type; } + + public Context getParent() { + return parent; + } @Override public String toString() {