]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - runtime/org.argeo.slc.akb/src/main/java/org/argeo/slc/akb/core/AkbServiceImpl.java
Add first draft for Connector Alias and Template environment editors.
[gpl/argeo-slc.git] / runtime / org.argeo.slc.akb / src / main / java / org / argeo / slc / akb / core / AkbServiceImpl.java
index 02ccdc6f6f508a4203f3a3428c8fac0b4b518890..e819bbfa82a858803de4e44e89b7bce31aa4cf36 100644 (file)
@@ -3,7 +3,10 @@ package org.argeo.slc.akb.core;
 import java.util.Map;
 
 import javax.annotation.Resource;
+import javax.jcr.Node;
+import javax.jcr.Property;
 import javax.jcr.Repository;
+import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 
 import org.apache.commons.logging.Log;
@@ -11,12 +14,14 @@ import org.apache.commons.logging.LogFactory;
 import org.argeo.jcr.JcrUtils;
 import org.argeo.slc.akb.AkbException;
 import org.argeo.slc.akb.AkbNames;
+import org.argeo.slc.akb.AkbService;
+import org.argeo.slc.akb.AkbTypes;
 
 /**
  * Concrete access to akb services. It provides among other an initialized
  * environment
  */
-public class AkbServiceImpl implements AkbNames {
+public class AkbServiceImpl implements AkbService, AkbNames {
        private final static Log log = LogFactory.getLog(AkbServiceImpl.class);
 
        /* DEPENDENCY INJECTION */
@@ -55,19 +60,45 @@ public class AkbServiceImpl implements AkbNames {
                } finally {
                        JcrUtils.logoutQuietly(adminSession);
                }
-               // log.info("AKB service has been initialized.");
        }
 
        /** Clean shutdown of the backend. */
        public void destroy() {
-               // Do nothing
        }
 
-       /** Expose injected repository */
-       public Repository getRepository() {
-               return repository;
+       @Override
+       public Node createAkbTemplate(Node parentNode, String name)
+                       throws RepositoryException {
+               String connectorParentName = "Connectors";
+               String itemsParentName = "Items";
+
+               Node newTemplate = parentNode.addNode(name, AkbTypes.AKB_ENV_TEMPLATE);
+               newTemplate.setProperty(Property.JCR_TITLE, name);
+
+               Node connectorParent = newTemplate.addNode(
+                               AkbTypes.AKB_CONNECTOR_FOLDER, AkbTypes.AKB_CONNECTOR_FOLDER);
+               connectorParent.setProperty(Property.JCR_TITLE, connectorParentName);
+
+               Node itemsParent = newTemplate.addNode(AkbTypes.AKB_ITEM_FOLDER,
+                               AkbTypes.AKB_ITEM_FOLDER);
+               itemsParent.setProperty(Property.JCR_TITLE, itemsParentName);
+
+               return newTemplate;
        }
 
+       // ///////////////////////////////////////
+       // / CONNECTORS
+
+       public boolean testConnector(Node connector) {
+               // TODO Implement this.
+               return false;
+       }
+
+       // /** Expose injected repository */
+       // public Repository getRepository() {
+       // return repository;
+       // }
+
        /* DEPENDENCY INJECTION */
        public void setRepository(Repository repository) {
                this.repository = repository;