From 5aeef7f6fe70d741b66a58eb51cdd2f1bcfdfcf1 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Mon, 2 Nov 2020 05:30:35 +0100 Subject: [PATCH] Start stabilising more Suite naming. --- knowledge/org.argeo.support.odk/bnd.bnd | 1 + .../org/argeo/support/odk/OrxListType.java | 27 +++++++++++++++++++ .../src/org/argeo/support/xforms/xforms.cnd | 4 ++- .../src/org/argeo/entity/EntityNames.java | 6 +++-- .../src/org/argeo/entity/EntityType.java | 6 ++--- .../src/org/argeo/entity/entity.cnd | 9 ++++--- .../suite/core/SuiteMaintenanceService.java | 14 ++++++++-- 7 files changed, 55 insertions(+), 12 deletions(-) create mode 100644 knowledge/org.argeo.support.odk/src/org/argeo/support/odk/OrxListType.java diff --git a/knowledge/org.argeo.support.odk/bnd.bnd b/knowledge/org.argeo.support.odk/bnd.bnd index caa9dce..619b258 100644 --- a/knowledge/org.argeo.support.odk/bnd.bnd +++ b/knowledge/org.argeo.support.odk/bnd.bnd @@ -13,4 +13,5 @@ OSGI-INF/odkSubmissionServlet.xml Import-Package:\ org.osgi.service.http.context,\ +org.argeo.naming,\ * diff --git a/knowledge/org.argeo.support.odk/src/org/argeo/support/odk/OrxListType.java b/knowledge/org.argeo.support.odk/src/org/argeo/support/odk/OrxListType.java new file mode 100644 index 0000000..0b7a963 --- /dev/null +++ b/knowledge/org.argeo.support.odk/src/org/argeo/support/odk/OrxListType.java @@ -0,0 +1,27 @@ +package org.argeo.support.odk; + +import org.argeo.jcr.QualifiedName; + +/** Types related to the http://openrosa.org/xforms/xformsList namespace. */ +public enum OrxListType implements QualifiedName { + xform; + + @Override + public String getPrefix() { + return prefix(); + } + + public static String prefix() { + return "orxList"; + } + + @Override + public String getNamespace() { + return namespace(); + } + + public static String namespace() { + return "http://openrosa.org/xforms/xformsList"; + } + +} diff --git a/knowledge/org.argeo.support.xforms/src/org/argeo/support/xforms/xforms.cnd b/knowledge/org.argeo.support.xforms/src/org/argeo/support/xforms/xforms.cnd index a9f986a..c24dbae 100644 --- a/knowledge/org.argeo.support.xforms/src/org/argeo/support/xforms/xforms.cnd +++ b/knowledge/org.argeo.support.xforms/src/org/argeo/support/xforms/xforms.cnd @@ -1,10 +1,12 @@ [xforms:model] -+ xforms:instance (nt:base) = nt:unstructured * ++ xforms:instance (xforms:instance) = xforms:instance * + xforms:bind (xforms:bind) = xforms:bind * + xforms:setvalue (xforms:setvalue) = xforms:setvalue * +[xforms:instance] > nt:unstructured + [xforms:bind] - * (STRING) diff --git a/org.argeo.entity.api/src/org/argeo/entity/EntityNames.java b/org.argeo.entity.api/src/org/argeo/entity/EntityNames.java index f8c8840..f32c262 100644 --- a/org.argeo.entity.api/src/org/argeo/entity/EntityNames.java +++ b/org.argeo.entity.api/src/org/argeo/entity/EntityNames.java @@ -4,10 +4,12 @@ import org.argeo.naming.LdapAttrs; /** Constants used to name entity structures. */ public interface EntityNames { - final String ENTITY_DEFINITIONS_PATH = "/entity"; - final String TYPOLOGIES_PATH = "/class"; final String FORM_BASE = "form"; + final String TERM_BASE = "term"; + final String ENTITY_DEFINITIONS_PATH = "/entity"; + @Deprecated + final String TYPOLOGIES_PATH = "/" + TERM_BASE; /** Administrative units. */ final String ADM = "adm"; diff --git a/org.argeo.entity.api/src/org/argeo/entity/EntityType.java b/org.argeo.entity.api/src/org/argeo/entity/EntityType.java index f0905d8..00a7803 100644 --- a/org.argeo.entity.api/src/org/argeo/entity/EntityType.java +++ b/org.argeo.entity.api/src/org/argeo/entity/EntityType.java @@ -1,15 +1,13 @@ package org.argeo.entity; -import org.argeo.naming.QualifiedName; +import org.argeo.jcr.QualifiedName; /** Types related to entities. */ public enum EntityType implements QualifiedName { // entity entity, definition, - // xml - xmlvalue, xmltext, // typology - typology, term, + typologies, terms, term, // form form, formSet, // ldap diff --git a/org.argeo.entity.api/src/org/argeo/entity/entity.cnd b/org.argeo.entity.api/src/org/argeo/entity/entity.cnd index 45be8ad..618487b 100644 --- a/org.argeo.entity.api/src/org/argeo/entity/entity.cnd +++ b/org.argeo.entity.api/src/org/argeo/entity/entity.cnd @@ -31,13 +31,16 @@ orderable // // TYPOLOGY // +[entity:typologies] ++ * (entity:terms) = entity:terms + [entity:term] orderable -+ * (entity:term) * ++ * (entity:term) = entity:term * -[entity:typology] > mix:referenceable, mix:created +[entity:terms] > mix:referenceable orderable -+ * (entity:term) * ++ * (entity:term) = entity:term * // // FORM diff --git a/org.argeo.suite.core/src/org/argeo/suite/core/SuiteMaintenanceService.java b/org.argeo.suite.core/src/org/argeo/suite/core/SuiteMaintenanceService.java index 7e54eaa..1117c5e 100644 --- a/org.argeo.suite.core/src/org/argeo/suite/core/SuiteMaintenanceService.java +++ b/org.argeo.suite.core/src/org/argeo/suite/core/SuiteMaintenanceService.java @@ -2,9 +2,12 @@ package org.argeo.suite.core; import java.io.IOException; +import javax.jcr.Node; import javax.jcr.RepositoryException; import javax.jcr.Session; +import org.argeo.entity.EntityNames; +import org.argeo.entity.EntityType; import org.argeo.maintenance.AbstractMaintenanceService; /** Initialises an Argeo Suite backend. */ @@ -12,8 +15,15 @@ public class SuiteMaintenanceService extends AbstractMaintenanceService { @Override public boolean prepareJcrTree(Session adminSession) throws RepositoryException, IOException { - //EntityJcrUtils.getOrAddFormFolder(adminSession.getRootNode(), EntityNames.FORM_BASE); - return adminSession.hasPendingChanges(); + boolean modified = false; + Node rootNode = adminSession.getRootNode(); + if (!rootNode.hasNode(EntityNames.TERM_BASE)) { + rootNode.addNode(EntityNames.TERM_BASE, EntityType.typologies.qualified()); + modified = true; + } + if (modified) + adminSession.save(); + return modified; } } -- 2.30.2