1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.seasar.tuigwaa.logic;
17
18 import org.seasar.framework.container.ComponentDef;
19 import org.seasar.tuigwaa.logic.interceptor.DataServiceMethodRegister;
20 import org.seasar.tuigwaa.model.DataService;
21
22 import com.isenshi.util.extlib.DiconResource;
23
24 public class ExternalLogicContainerImpl implements ExternalLogicContainer {
25
26 private DataServiceMethodRegister methodRegister;
27
28 public void setMethodRegister(DataServiceMethodRegister methodRegister) {
29 this.methodRegister = methodRegister;
30 }
31
32 public void create(String siteName, String[] paths) {
33 for (int i = 0; i < paths.length; i++) {
34 DiconResource resource = new DiconResource();
35 resource.setNamespace("sites." + siteName);
36 resource.setPath(paths[i]);
37 resource.load();
38 resource.bindRoot();
39 resource.include("dicon/service.dicon");
40
41 registDelegateDataService(siteName, resource);
42 }
43 }
44
45 private void registDelegateDataService(String siteName,
46 DiconResource resource) {
47 ComponentDef[] defs = resource.findComponentDefs(DataService.class);
48 if (defs == null) {
49 return;
50 }
51 for (int i = 0; i < defs.length; i++) {
52 String entityName = defs[i].getComponentName();
53 DataService dataService = (DataService) defs[i].getComponent();
54 methodRegister.registDelegateObject(siteName, entityName,
55 dataService);
56 }
57 }
58 }