View Javadoc
1   /**
2    * Copyright 2010 The Kuali Foundation Licensed under the
3    * Educational Community License, Version 2.0 (the "License"); you may
4    * not use this file except in compliance with the License. You may
5    * obtain a copy of the License at
6    *
7    * http://www.osedu.org/licenses/ECL-2.0
8    *
9    * Unless required by applicable law or agreed to in writing,
10   * software distributed under the License is distributed on an "AS IS"
11   * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12   * or implied. See the License for the specific language governing
13   * permissions and limitations under the License.
14   */
15  
16  package org.kuali.student.r2.lum.statement.config.context;
17  
18  import java.util.Map;
19  
20  import org.kuali.student.r2.core.organization.dto.OrgInfo;
21  import org.kuali.student.r2.common.dto.ContextInfo;
22  import org.kuali.student.r2.core.organization.service.OrganizationService;
23  import org.kuali.student.r1.core.statement.dto.ReqComponentInfo;
24  import org.kuali.student.r1.lum.statement.typekey.ReqComponentFieldTypes;
25  import org.kuali.student.r2.common.exceptions.OperationFailedException;
26  
27  
28  /**
29   * This class creates the template context for an organization.
30   */
31  public class OrganizationContextImpl extends BasicContextImpl {
32   
33  	private OrganizationService organizationService;
34  	
35  	public final static String ORG_TOKEN = "org";
36  
37  	public void setOrganizationService(OrganizationService organizationService) {
38  		this.organizationService = organizationService;
39  	}
40  
41  	private OrgInfo getOrganization(String orgId, ContextInfo context) throws OperationFailedException {
42  		if (orgId == null) {
43  			return null;
44  		}
45  		try {
46  
47  			return organizationService.getOrg(orgId, context);
48  		} catch (Exception e) {
49  			throw new OperationFailedException(e.getMessage(), e);
50  		}
51  	}
52  
53      /**
54       * Creates the context map (template data) for the requirement component.
55       * 
56       *
57       * @param reqComponent Requirement component
58       * @throws OperationFailedException Creating context map fails
59       */
60      public Map<String, Object> createContextMap(ReqComponentInfo reqComponent, ContextInfo contextInfo) throws OperationFailedException {
61          String orgId = getReqComponentFieldValue(reqComponent, ReqComponentFieldTypes.ORGANIZATION_KEY.getId());
62          OrgInfo org = getOrganization(orgId, contextInfo);
63          
64          Map<String, Object> contextMap = super.createContextMap(reqComponent, contextInfo);
65          contextMap.put(ORG_TOKEN, org);
66          return contextMap;
67      }
68  }