Skip to content

Commit

Permalink
Fixed enum json creation
Browse files Browse the repository at this point in the history
  • Loading branch information
hvarg committed Feb 16, 2024
1 parent 8297e4b commit e823e77
Show file tree
Hide file tree
Showing 15 changed files with 192 additions and 73 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
import org.diskproject.shared.classes.adapters.MethodAdapter;
import org.diskproject.shared.classes.workflow.WorkflowVariable;
import org.diskproject.shared.classes.workflow.VariableBinding;
import org.diskproject.shared.classes.workflow.Workflow;
import org.diskproject.shared.classes.workflow.WorkflowTemplate;
import org.diskproject.shared.classes.workflow.WorkflowRun;

public class AirFlowAdapter extends MethodAdapter {
Expand Down Expand Up @@ -59,8 +59,8 @@ public boolean ping() {
}

@Override
public List<Workflow> getWorkflowList() {
List<Workflow> list = new ArrayList<Workflow>();
public List<WorkflowTemplate> getWorkflowList() {
List<WorkflowTemplate> list = new ArrayList<WorkflowTemplate>();
return list;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,10 @@
import org.diskproject.shared.classes.util.DataAdapterResponse;
import org.diskproject.shared.classes.util.ExternalDataRequest;
import org.diskproject.shared.classes.util.QuestionOptionsRequest;
import org.diskproject.shared.classes.util.WorkflowTemplateResponse;
import org.diskproject.shared.classes.vocabulary.Vocabulary;
import org.diskproject.shared.classes.workflow.WorkflowVariable;
import org.diskproject.shared.classes.workflow.Workflow;
import org.diskproject.shared.classes.workflow.WorkflowTemplate;
import org.diskproject.shared.classes.workflow.WorkflowRun;

import com.fasterxml.jackson.annotation.JsonProperty;
Expand Down Expand Up @@ -308,7 +309,7 @@ public void deleteTriggeredLOI(
@GET
@Override
@Path("workflows")
public List<Workflow> listWorkflows() {
public List<WorkflowTemplateResponse> listWorkflows() {
Gson response_error = new Gson();
try {
return this.repo.methodAdapters.getWorkflowList();
Expand Down
69 changes: 42 additions & 27 deletions server/src/main/java/org/diskproject/server/db/DiskDB.java
Original file line number Diff line number Diff line change
Expand Up @@ -653,21 +653,20 @@ private void loadLOIExtras (LineOfInquiry loi, KBObject loiItem) {

List<KBObject> wfSeeds = domainKB.getPropertyValues(loiItem, DISKOnt.getProperty(DISK.HAS_WORKFLOW_SEED));
List<KBObject> mwfSeeds = domainKB.getPropertyValues(loiItem, DISKOnt.getProperty(DISK.HAS_META_WORKFLOW_SEED));
List<WorkflowSeed> wList = new ArrayList<WorkflowSeed>(), mList = new ArrayList<WorkflowSeed>();

if (wfSeeds != null && wfSeeds.size() > 0) {
List<WorkflowSeed> list = new ArrayList<WorkflowSeed>();
for (KBObject t: wfSeeds) {
list.add(loadWorkflowSeed(t));
wList.add(loadWorkflowSeed(t));
}
loi.setWorkflowSeeds(list);
}
if (mwfSeeds != null && mwfSeeds.size() > 0) {
List<WorkflowSeed> list = new ArrayList<WorkflowSeed>();
for (KBObject t: mwfSeeds) {
list.add(loadWorkflowSeed(t));
mList.add(loadWorkflowSeed(t));
}
loi.setMetaWorkflowSeeds(list);
}
loi.setWorkflowSeeds(wList);
loi.setMetaWorkflowSeeds(mList);
}

public boolean deleteLOI(String id) {
Expand Down Expand Up @@ -705,14 +704,16 @@ private KBObject writeWorkflowSeed (WorkflowSeed seed, String parentId) {
}

private KBObject _writeWorkflowSeed (WorkflowSeed seed, KBObject seedObj, String parentId) {
if (seed.getName() != null)
domainKB.setLabel(seedObj, seed.getName());
if (seed.getDescription() != null)
domainKB.setComment(seedObj, seed.getDescription());
if (seed.getSource() != null)
domainKB.setPropertyValue(seedObj, DISKOnt.getClass(DISK.HAS_WORKFLOW_SOURCE), domainKB.getResource(seed.getSource().getId()));
domainKB.setPropertyValue(seedObj, DISKOnt.getProperty(DISK.HAS_WORKFLOW_SOURCE), domainKB.getResource(seed.getSource().getId()));
if (seed.getLink() != null)
domainKB.setPropertyValue(seedObj, DISKOnt.getClass(DISK.HAS_WORKFLOW), domainKB.createLiteral(seed.getLink()) );
domainKB.setPropertyValue(seedObj, DISKOnt.getProperty(DISK.HAS_WORKFLOW), domainKB.createLiteral(seed.getLink()) );

List<VariableBinding> parameters = seed.getParameters(), inputs = seed.getInputs();
List<VariableBinding> parameters = seed.getParameters(), inputs = seed.getInputs(), outputs = seed.getOutputs();
if (parameters != null && parameters.size() > 0) {
for (VariableBinding vBinding: parameters) {
domainKB.addPropertyValue(seedObj, DISKOnt.getProperty(DISK.HAS_PARAMETER),
Expand All @@ -725,11 +726,19 @@ private KBObject _writeWorkflowSeed (WorkflowSeed seed, KBObject seedObj, String
writeVariableBinding(vBinding, parentId));
}
}
if (outputs != null && outputs.size() > 0) {
for (VariableBinding vBinding: outputs) {
domainKB.addPropertyValue(seedObj, DISKOnt.getProperty(DISK.HAS_OUTPUT),
writeVariableBinding(vBinding, parentId));
}
}
return seedObj;
}

private WorkflowSeed loadWorkflowSeed (KBObject seedObj) {
WorkflowSeed seed = new WorkflowSeed();
String name = domainKB.getLabel(seedObj);
if (name != null) seed.setName(name);
String comment = domainKB.getComment(seedObj);
if (comment != null) seed.setDescription(comment);
KBObject source = domainKB.getPropertyValue(seedObj, DISKOnt.getProperty(DISK.HAS_WORKFLOW_SOURCE));
Expand All @@ -739,20 +748,27 @@ private WorkflowSeed loadWorkflowSeed (KBObject seedObj) {

List<KBObject> params = domainKB.getPropertyValues(seedObj, DISKOnt.getProperty(DISK.HAS_PARAMETER));
List<KBObject> inputs = domainKB.getPropertyValues(seedObj, DISKOnt.getProperty(DISK.HAS_INPUT));
List<KBObject> outputs= domainKB.getPropertyValues(seedObj, DISKOnt.getProperty(DISK.HAS_OUTPUT));
List<VariableBinding> pList = new ArrayList<VariableBinding>(), iList = new ArrayList<VariableBinding>(),
oList = new ArrayList<VariableBinding>();
if (params != null && params.size() > 0) {
List<VariableBinding> list = new ArrayList<VariableBinding>();
for (KBObject t: params) {
list.add(loadVariableBinding(t));
pList.add(loadVariableBinding(t));
}
seed.setParameters(list);
}
if (inputs != null && inputs.size() > 0) {
List<VariableBinding> list = new ArrayList<VariableBinding>();
for (KBObject t: inputs) {
list.add(loadVariableBinding(t));
iList.add(loadVariableBinding(t));
}
}
if (outputs != null && outputs.size() > 0) {
for (KBObject t: outputs) {
oList.add(loadVariableBinding(t));
}
seed.setInputs(list);
}
seed.setParameters(pList);
seed.setInputs(iList);
seed.setOutputs(oList);
return seed;
}

Expand Down Expand Up @@ -789,22 +805,21 @@ private WorkflowInstantiation loadWorkflowInstantiation (KBObject instObj) {
if (status != null) inst.setStatus(getStatusFromString(status.getValueAsString()));

List<KBObject> data = domainKB.getPropertyValues(instObj, DISKOnt.getProperty(DISK.HAS_DATA_BINDINGS));
List<VariableBinding> dList = new ArrayList<VariableBinding>();
List<Execution> eList = new ArrayList<Execution>();
if (data != null && data.size() > 0) {
List<VariableBinding> list = new ArrayList<VariableBinding>();
for (KBObject t: data) {
list.add(loadVariableBinding(t));
dList.add(loadVariableBinding(t));
}
inst.setDataBindings(list);
}

List<KBObject> executions = domainKB.getPropertyValues(instObj, DISKOnt.getProperty(DISK.HAS_EXECUTION));
if (executions != null && executions.size() > 0) {
List<Execution> list = new ArrayList<Execution>();
for (KBObject t: executions) {
list.add(loadExecution(t));
eList.add(loadExecution(t));
}
inst.setExecutions(list);
}
inst.setDataBindings(dList);
inst.setExecutions(eList);
return inst;
}

Expand Down Expand Up @@ -940,7 +955,7 @@ private GoalResult loadGoalResult (KBObject resultObj) {

// -- Variable bindings
private KBObject createLiteralFromBindingValue (VariableBinding binding) {
if (binding.isArray()) {
if (binding.getIsArray()) {
List<String> values = binding.getBindings();
int size = values.size(), i = 0;
String str = "";
Expand Down Expand Up @@ -987,10 +1002,10 @@ private KBObject writeVariableBinding (VariableBinding vBinding, String prefix)
domainKB.setPropertyValue(vBindingObj, DISKOnt.getProperty(DISK.HAS_BINDING_VARIABLE), domainKB.createLiteral(vBinding.getVariable()));
if (vBinding.getDatatype() != null)
domainKB.setPropertyValue(vBindingObj, DISKOnt.getProperty(DISK.HAS_DATATYPE), domainKB.createLiteral(vBinding.getDatatype()));
if (vBinding.getType() != null)
domainKB.setPropertyValue(vBindingObj, DISKOnt.getProperty(DISK.HAS_TYPE), domainKB.createLiteral(vBinding.getType()));
if (vBinding.getBinding() != null)
domainKB.setPropertyValue(vBindingObj, DISKOnt.getProperty(DISK.HAS_BINDING_VALUE), createLiteralFromBindingValue(vBinding));
if (vBinding.getType() != null)
domainKB.setPropertyValue(vBindingObj, DISKOnt.getProperty(DISK.HAS_TYPE), domainKB.createLiteral(vBinding.getType()));
return vBindingObj;
}

Expand All @@ -1000,10 +1015,10 @@ private VariableBinding loadVariableBinding (KBObject bindingObj) {
if (variable != null) vb.setVariable(variable.getValueAsString());
KBObject datatype = domainKB.getPropertyValue(bindingObj, DISKOnt.getProperty(DISK.HAS_DATATYPE));
if (datatype != null) vb.setDatatype(datatype.getValueAsString());
KBObject type = domainKB.getPropertyValue(bindingObj, DISKOnt.getProperty(DISK.HAS_TYPE));
if (type != null) vb.setType(type.getValueAsString());
KBObject rawValue = domainKB.getPropertyValue(bindingObj, DISKOnt.getProperty(DISK.HAS_BINDING_VALUE));
if (rawValue != null) readLiteralAsBindingValue(rawValue.getValueAsString(), vb);
KBObject type = domainKB.getPropertyValue(bindingObj, DISKOnt.getProperty(DISK.HAS_TYPE));
if (type != null) vb.setType(type.getValueAsString());
return vb;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.Callable;

import org.diskproject.server.adapters.GraphDBAdapter;
import org.diskproject.server.adapters.SparqlAdapter;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@
import org.diskproject.server.util.ConfigKeys;
import org.diskproject.shared.classes.adapters.MethodAdapter;
import org.diskproject.shared.classes.common.Endpoint;
import org.diskproject.shared.classes.workflow.Workflow;
import org.diskproject.shared.classes.util.WorkflowTemplateResponse;
import org.diskproject.shared.classes.workflow.WorkflowTemplate;
import org.diskproject.shared.classes.workflow.WorkflowVariable;

public class MethodAdapterManager {
Expand Down Expand Up @@ -68,11 +69,13 @@ public MethodAdapter getMethodAdapterByName (String name) {
return null;
}

public List<Workflow> getWorkflowList () {
List<Workflow> list = new ArrayList<Workflow>();
public List<WorkflowTemplateResponse> getWorkflowList () {
List<WorkflowTemplateResponse> list = new ArrayList<WorkflowTemplateResponse>();
for (MethodAdapter adapter : this.byUrl.values()) {
for (Workflow wf : adapter.getWorkflowList()) {
list.add(wf);
for (WorkflowTemplate wf : adapter.getWorkflowList()) {
list.add(new WorkflowTemplateResponse(wf,
new Endpoint(adapter.getName(), adapter.getEndpointUrl(), adapter.getId())
));
}
}
return list;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,6 @@
import org.diskproject.shared.classes.adapters.MethodAdapter.FileAndMeta;
import org.diskproject.shared.classes.common.Entity;
import org.diskproject.shared.classes.hypothesis.Goal;
import org.diskproject.shared.classes.hypothesis.Hypothesis;
import org.diskproject.shared.classes.loi.DataQueryTemplate;
import org.diskproject.shared.classes.loi.LineOfInquiry;
import org.diskproject.shared.classes.loi.TriggeredLOI;
import org.diskproject.shared.classes.workflow.WorkflowRun.RunBinding;
Expand All @@ -54,7 +52,6 @@
import edu.isi.kcap.ontapi.OntSpec;
import edu.isi.kcap.ontapi.SparqlQuerySolution;
import javax.ws.rs.NotFoundException;
import javax.xml.ws.Endpoint;

public class DiskRepository {
static DiskRepository singleton;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
import org.diskproject.shared.classes.util.KBConstants;
import org.diskproject.shared.classes.workflow.WorkflowVariable;
import org.diskproject.shared.classes.workflow.VariableBinding;
import org.diskproject.shared.classes.workflow.Workflow;
import org.diskproject.shared.classes.workflow.WorkflowTemplate;
import org.diskproject.shared.classes.workflow.WorkflowRun;
import org.diskproject.shared.classes.workflow.WorkflowRun.RunBinding;
import org.diskproject.shared.classes.workflow.WorkflowRun.RuntimeInfo;
Expand Down Expand Up @@ -140,18 +140,18 @@ public String getWorkflowLink(String id) {
+ "/workflows/" + id + ".owl";
}

public List<Workflow> getWorkflowList() {
public List<WorkflowTemplate> getWorkflowList() {
String getTemplatesUrl = "users/" + this.getUsername() + "/" + this.domain +"/workflows/getTemplatesListJSON";
String resp = this.get(getTemplatesUrl, null);
List<Workflow> wList = new ArrayList<Workflow>();
List<WorkflowTemplate> wList = new ArrayList<WorkflowTemplate>();

try {
JsonArray arr = (JsonArray) jsonParser.parse(resp);
int len = arr.size();
for (int i = 0; i < len; i++) {
String fullId = arr.get(i).getAsString();
String localId = fullId.replaceAll("^.*#", "");
wList.add(new Workflow(fullId, localId, getWorkflowLink(localId), this.getName()));
wList.add(new WorkflowTemplate(fullId, localId, getWorkflowLink(localId), this.getName()));
}
} catch (Exception e) {
System.err.println("Error decoding " + resp);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ public void printWorkflowRun(WorkflowInstantiation wf, List<VariableBinding> inp
// Execute workflow
System.out.println("[R] Executing " + wf.getLink() + " with " + inputBindings.size() + " parameters:");
for (VariableBinding v : inputBindings) {
List<String> l = v.isArray() ? v.getBindings() : null;
List<String> l = v.getIsArray() ? v.getBindings() : null;
int i = 0;
if (l != null) {
System.out.println("[R] - " + v.getVariable() + ": ");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@
import org.diskproject.shared.classes.util.DataAdapterResponse;
import org.diskproject.shared.classes.util.ExternalDataRequest;
import org.diskproject.shared.classes.util.QuestionOptionsRequest;
import org.diskproject.shared.classes.util.WorkflowTemplateResponse;
import org.diskproject.shared.classes.vocabulary.Vocabulary;
import org.diskproject.shared.classes.workflow.WorkflowVariable;
import org.diskproject.shared.classes.workflow.Workflow;
import org.diskproject.shared.classes.workflow.WorkflowRun;
import com.fasterxml.jackson.annotation.JsonProperty;

Expand Down Expand Up @@ -156,7 +156,7 @@ public void deleteTriggeredLOI(
*/
@GET
@Path("workflows")
public List<Workflow> listWorkflows();
public List<WorkflowTemplateResponse> listWorkflows();

@GET
@Path("workflows/{source}/{id}")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

import org.diskproject.shared.classes.workflow.WorkflowVariable;
import org.diskproject.shared.classes.workflow.VariableBinding;
import org.diskproject.shared.classes.workflow.Workflow;
import org.diskproject.shared.classes.workflow.WorkflowTemplate;
import org.diskproject.shared.classes.workflow.WorkflowRun;

public abstract class MethodAdapter {
Expand Down Expand Up @@ -83,7 +83,7 @@ public String toString () {
return "[" + this.name + "] " + (this.username != null ? this.username + "@" : "") + this.endpointUrl;
}

public abstract List<Workflow> getWorkflowList();
public abstract List<WorkflowTemplate> getWorkflowList();

public abstract List<WorkflowVariable> getWorkflowVariables(String id);

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package org.diskproject.shared.classes.util;

import org.diskproject.shared.classes.common.Endpoint;
import org.diskproject.shared.classes.workflow.WorkflowTemplate;

public class WorkflowTemplateResponse {
String id, name, link;
Endpoint source;

public WorkflowTemplateResponse (WorkflowTemplate wf, Endpoint source) {
this.id = wf.getId();
this.name = wf.getName();
this.link = wf.getLink();
this.source = source;
}

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getLink() {
return link;
}

public void setLink(String link) {
this.link = link;
}

public Endpoint getSource() {
return source;
}

public void setSource(Endpoint source) {
this.source = source;
}
}
Loading

0 comments on commit e823e77

Please sign in to comment.