From 9910199d331355773d7a2913b7013a5017841b40 Mon Sep 17 00:00:00 2001 From: Maximilinano Osorio Date: Tue, 16 Aug 2022 08:33:05 -0400 Subject: [PATCH] fix: add cardinality --- .../server/repository/DiskRepository.java | 19 ++++++++++++++++++ .../classes/question/QuestionVariable.java | 20 +++++++++++++++++++ .../diskproject/shared/ontologies/SQO.java | 2 ++ 3 files changed, 41 insertions(+) diff --git a/server/src/main/java/org/diskproject/server/repository/DiskRepository.java b/server/src/main/java/org/diskproject/server/repository/DiskRepository.java index b94dcd9..bcf58aa 100644 --- a/server/src/main/java/org/diskproject/server/repository/DiskRepository.java +++ b/server/src/main/java/org/diskproject/server/repository/DiskRepository.java @@ -870,12 +870,29 @@ public List loadQuestionsFromKB(String url) { KBObject vconstraints = kb.getPropertyValue(var, SQOnt.getProperty(SQO.HAS_CONSTRAINT_QUERY)); KBObject vfixedOptions = kb.getPropertyValue(var, SQOnt.getProperty(SQO.HAS_FIXED_OPTIONS)); + KBObject variableMinCardinality = kb.getPropertyValue(var, SQOnt.getProperty(SQO.MIN_CARDINALITY)); + KBObject variableMaxCardinality = kb.getPropertyValue(var, SQOnt.getProperty(SQO.MAX_CARDINALITY)); if (vname != null) { QuestionVariable q = new QuestionVariable(var.getID(), vname.getValueAsString(), vconstraints == null ? null : vconstraints.getValueAsString()); if (vfixedOptions != null) { q.setFixedOptions(vfixedOptions.getValueAsString().split("\\s*,\\s*")); } + if (variableMinCardinality != null) + try{ + q.setMinCardinality(Integer.parseInt(variableMinCardinality.getValueAsString())); + } + catch (Exception e) { + System.out.println("Error parsing min cardinality for variable " + vname); + } + if (variableMaxCardinality != null) { + try { + q.setMaxCardinality(Integer.parseInt(variableMaxCardinality.getValueAsString())); + } + catch (Exception e) { + System.out.println("Error parsing max cardinality for variable " + vname); + } + } vars.add(q); } } @@ -927,6 +944,8 @@ private List> loadVariableOptions(String sid) throws Exception { String varname = variable.getVarName(); String constraintQuery = variable.getConstraints(); String[] fixedoptions = variable.getFixedOptions(); + Integer minCardinality = variable.getMinCardinality(); + Integer maxCardinality = variable.getMaxCardinality(); // If there are fixed options, return these if (fixedoptions != null) { diff --git a/shared/src/main/java/org/diskproject/shared/classes/question/QuestionVariable.java b/shared/src/main/java/org/diskproject/shared/classes/question/QuestionVariable.java index 2033893..4ec39b2 100644 --- a/shared/src/main/java/org/diskproject/shared/classes/question/QuestionVariable.java +++ b/shared/src/main/java/org/diskproject/shared/classes/question/QuestionVariable.java @@ -5,6 +5,8 @@ public class QuestionVariable { String varname; String constraints; String[] fixedOptions; + Integer minCardinality; + Integer maxCardinality; public QuestionVariable () { } @@ -13,6 +15,8 @@ public QuestionVariable (String id, String varname, String constraints) { this.id = id; this.varname = varname; this.constraints = constraints; + this.maxCardinality = 1; + this.minCardinality = 1; } public String toString () { @@ -52,4 +56,20 @@ public String[] getFixedOptions() { public void setFixedOptions(String[] options) { this.fixedOptions = options; } + + public Integer getMinCardinality() { + return minCardinality; + } + + public void setMinCardinality(Integer minCardinality) { + this.minCardinality = minCardinality; + } + + public Integer getMaxCardinality() { + return maxCardinality; + } + + public void setMaxCardinality(Integer maxCardinality) { + this.maxCardinality = maxCardinality; + } } diff --git a/shared/src/main/java/org/diskproject/shared/ontologies/SQO.java b/shared/src/main/java/org/diskproject/shared/ontologies/SQO.java index ede9b83..f139598 100644 --- a/shared/src/main/java/org/diskproject/shared/ontologies/SQO.java +++ b/shared/src/main/java/org/diskproject/shared/ontologies/SQO.java @@ -11,4 +11,6 @@ public class SQO { public static final String HAS_VARIABLE_NAME = "hasVariableName"; public static final String HAS_CONSTRAINT_QUERY = "hasConstraints"; public static final String HAS_FIXED_OPTIONS = "hasFixedOptions"; + public static final String MIN_CARDINALITY = "minCardinality"; + public static final String MAX_CARDINALITY = "maxCardinality"; } \ No newline at end of file