X-Git-Url: https://git.argeo.org/?p=gpl%2Fargeo-suite.git;a=blobdiff_plain;f=org.argeo.suite.core%2Fsrc%2Forg%2Fargeo%2Fsuite%2Fcore%2FDefaultSuiteAppService.java;fp=org.argeo.suite.core%2Fsrc%2Forg%2Fargeo%2Fsuite%2Fcore%2FDefaultSuiteAppService.java;h=02eda618e39ce220edb5821c10c5a3a5c58e8982;hp=0000000000000000000000000000000000000000;hb=e51dee49ebe0d118c9ce3a5cbf06054e7e2df516;hpb=6fcadd5457518ce2e3aa05bdfd1cbc874ed8deab diff --git a/org.argeo.suite.core/src/org/argeo/suite/core/DefaultSuiteAppService.java b/org.argeo.suite.core/src/org/argeo/suite/core/DefaultSuiteAppService.java new file mode 100644 index 0000000..02eda61 --- /dev/null +++ b/org.argeo.suite.core/src/org/argeo/suite/core/DefaultSuiteAppService.java @@ -0,0 +1,84 @@ +package org.argeo.suite.core; + +import javax.jcr.Node; +import javax.jcr.RepositoryException; +import javax.jcr.nodetype.NodeType; + +import org.argeo.connect.AppService; +import org.argeo.connect.activities.ActivitiesService; +import org.argeo.connect.activities.ActivitiesTypes; +import org.argeo.connect.documents.DocumentsService; +import org.argeo.connect.people.PeopleService; +import org.argeo.connect.people.PeopleTypes; +import org.argeo.connect.resources.ResourcesService; +import org.argeo.connect.resources.ResourcesTypes; +import org.argeo.connect.tracker.TrackerService; +import org.argeo.connect.tracker.TrackerTypes; +import org.argeo.connect.util.ConnectJcrUtils; + +public class DefaultSuiteAppService implements AppService { + + private ResourcesService resourcesService; + private ActivitiesService activitiesService; + private PeopleService peopleService; + private DocumentsService documentsService; + private TrackerService trackerService; + + @Override + public String getAppBaseName() { + return null; + } + + @Override + public String getDefaultRelPath(Node entity) throws RepositoryException { + return null; + } + + @Override + public String getDefaultRelPath(String id) { + return null; + } + + /** Insures the correct service is called on save */ + @Override + public Node saveEntity(Node entity, boolean publish) { + if (ConnectJcrUtils.isNodeType(entity, ResourcesTypes.RESOURCES_TAG_PARENT) + || ConnectJcrUtils.isNodeType(entity, ResourcesTypes.RESOURCES_NODE_TEMPLATE) + || ConnectJcrUtils.isNodeType(entity, ResourcesTypes.RESOURCES_TAG_ENCODED_INSTANCE) + || ConnectJcrUtils.isNodeType(entity, ResourcesTypes.RESOURCES_TAG_INSTANCE)) + return resourcesService.saveEntity(entity, publish); + else if (ConnectJcrUtils.isNodeType(entity, TrackerTypes.TRACKER_PROJECT)) + return trackerService.saveEntity(entity, publish); + else if (ConnectJcrUtils.isNodeType(entity, ActivitiesTypes.ACTIVITIES_TASK) + || ConnectJcrUtils.isNodeType(entity, ActivitiesTypes.ACTIVITIES_ACTIVITY)) + return activitiesService.saveEntity(entity, publish); + else if (ConnectJcrUtils.isNodeType(entity, PeopleTypes.PEOPLE_PERSON) + || ConnectJcrUtils.isNodeType(entity, PeopleTypes.PEOPLE_ORG)) + return peopleService.saveEntity(entity, publish); + else if (ConnectJcrUtils.isNodeType(entity, NodeType.NT_FILE) + || ConnectJcrUtils.isNodeType(entity, NodeType.NT_FOLDER)) + return documentsService.saveEntity(entity, publish); + else + return AppService.super.saveEntity(entity, publish); + } + + public void setResourcesService(ResourcesService resourcesService) { + this.resourcesService = resourcesService; + } + + public void setActivitiesService(ActivitiesService activitiesService) { + this.activitiesService = activitiesService; + } + + public void setPeopleService(PeopleService peopleService) { + this.peopleService = peopleService; + } + + public void setDocumentsService(DocumentsService documentsService) { + this.documentsService = documentsService; + } + + public void setTrackerService(TrackerService trackerService) { + this.trackerService = trackerService; + } +}