Adapt after SystemApp interfaces addition
[gpl/argeo-suite.git] / org.argeo.suite.core / src / org / argeo / suite / core / DefaultSuiteAppService.java
index 3718eae490f5d5b4855fe12321eabc9ea3ffd0ad..ea5dc23e53996bda065ea034a876320630825387 100644 (file)
@@ -6,19 +6,41 @@ import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 
 import org.argeo.connect.AppService;
+import org.argeo.connect.SystemAppService;
 import org.argeo.suite.SuiteConstants;
+import org.argeo.suite.SuiteException;
 
-public class DefaultSuiteAppService implements AppService {
+public class DefaultSuiteAppService implements SystemAppService {
 
        // Injected known AppWorkbenchServices: order is important, first found
        // result will be returned by the various methods.
        private List<AppService> knownAppServices;
 
+       @Override
+       public Node createEntity(Node parent, String nodeType, Node srcNode, boolean removeSrcNode)
+                       throws RepositoryException {
+               for (AppService appService : knownAppServices) {
+                       if (appService.isKnownType(nodeType))
+                               return appService.createEntity(parent, nodeType, srcNode, removeSrcNode);
+               }
+               return null;
+       }
+
        @Override
        public String getAppBaseName() {
                return SuiteConstants.SUITE_APP_BASE_NAME;
        }
 
+       @Override
+       public String getBaseRelPath(String nodeType) {
+               for (AppService appService : knownAppServices) {
+                       if (appService.isKnownType(nodeType))
+                               return appService.getBaseRelPath(nodeType);
+               }
+               return null;
+               // return getAppBaseName();
+       }
+
        @Override
        public String getDefaultRelPath(Node entity) throws RepositoryException {
                for (AppService appService : knownAppServices) {
@@ -44,7 +66,8 @@ public class DefaultSuiteAppService implements AppService {
                        if (appService.isKnownType(entity))
                                return appService.saveEntity(entity, publish);
                }
-               return AppService.super.saveEntity(entity, publish);
+               throw new SuiteException("Unknown NodeType for " + entity + ". Cannot save");
+               // return AppService.super.saveEntity(entity, publish);
        }
 
        @Override
@@ -68,4 +91,5 @@ public class DefaultSuiteAppService implements AppService {
        public void setKnownAppServices(List<AppService> knownAppServices) {
                this.knownAppServices = knownAppServices;
        }
+
 }