]>
git.argeo.org Git - gpl/argeo-suite.git/blob - org.argeo.suite.core/src/org/argeo/suite/core/DefaultSuiteAppService.java
1 package org
.argeo
.suite
.core
;
6 import javax
.jcr
.RepositoryException
;
7 import javax
.jcr
.Session
;
9 import org
.argeo
.connect
.AppService
;
10 import org
.argeo
.connect
.SystemAppService
;
11 import org
.argeo
.eclipse
.ui
.EclipseUiUtils
;
12 import org
.argeo
.suite
.SuiteConstants
;
13 import org
.argeo
.suite
.SuiteException
;
15 public class DefaultSuiteAppService
implements SystemAppService
{
17 // Injected known AppWorkbenchServices: order is important, first found
18 // result will be returned by the various methods.
19 private List
<AppService
> knownAppServices
;
22 public Node
publishEntity(Node parent
, String nodeType
, Node srcNode
, boolean removeSrcNode
)
23 throws RepositoryException
{
24 for (AppService appService
: knownAppServices
) {
25 if (appService
.isKnownType(nodeType
))
26 return appService
.publishEntity(parent
, nodeType
, srcNode
, removeSrcNode
);
32 public String
getAppBaseName() {
33 return SuiteConstants
.SUITE_APP_BASE_NAME
;
37 public String
getBaseRelPath(String nodeType
) {
38 for (AppService appService
: knownAppServices
) {
39 if (appService
.isKnownType(nodeType
))
40 return appService
.getBaseRelPath(nodeType
);
43 // return getAppBaseName();
47 public String
getDefaultRelPath(Node entity
) throws RepositoryException
{
48 for (AppService appService
: knownAppServices
) {
49 if (appService
.isKnownType(entity
))
50 return appService
.getDefaultRelPath(entity
);
56 public String
getMainNodeType(Node node
) {
57 for (AppService appService
: knownAppServices
) {
58 String foundType
= appService
.getMainNodeType(node
);
59 if (EclipseUiUtils
.notEmpty(foundType
))
66 public String
getDefaultRelPath(Session session
, String nodetype
, String id
) {
67 for (AppService appService
: knownAppServices
) {
68 if (appService
.isKnownType(nodetype
))
69 return appService
.getDefaultRelPath(session
, nodetype
, id
);
74 /** Insures the correct service is called on save */
76 public Node
saveEntity(Node entity
, boolean publish
) {
77 for (AppService appService
: knownAppServices
) {
78 if (appService
.isKnownType(entity
))
79 return appService
.saveEntity(entity
, publish
);
81 throw new SuiteException("Unknown NodeType for " + entity
+ ". Cannot save");
82 // return AppService.super.saveEntity(entity, publish);
86 public boolean isKnownType(Node entity
) {
87 for (AppService appService
: knownAppServices
) {
88 if (appService
.isKnownType(entity
))
95 public boolean isKnownType(String nodeType
) {
96 for (AppService appService
: knownAppServices
) {
97 if (appService
.isKnownType(nodeType
))
103 public void setKnownAppServices(List
<AppService
> knownAppServices
) {
104 this.knownAppServices
= knownAppServices
;