View Javadoc

1   /*
2    * Copyright 2004-2006 the Seasar Foundation and the Others.
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *     http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 
13   * either express or implied. See the License for the specific language
14   * governing permissions and limitations under the License.
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  }