Clover Coverage Report - Kuali Student 1.2-M1-SNAPSHOT (Aggregated)
Coverage timestamp: Fri Mar 4 2011 04:03:38 EST
../../../../../../img/srcFileCovDistChart10.png 0% of files have more coverage
11   117   3   3.67
0   34   0.27   3
3     1  
1    
 
  AbstractContext       Line # 38 11 0% 3 0 100% 1.0
 
  (118)
 
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.core.statement.naturallanguage;
17   
18    import java.util.HashMap;
19    import java.util.HashSet;
20    import java.util.List;
21    import java.util.Map;
22    import java.util.Set;
23   
24    import org.kuali.student.common.exceptions.DoesNotExistException;
25    import org.kuali.student.common.exceptions.OperationFailedException;
26    import org.kuali.student.core.statement.dto.ReqCompFieldInfo;
27    import org.kuali.student.core.statement.dto.ReqCompFieldTypeInfo;
28    import org.kuali.student.core.statement.dto.ReqComponentInfo;
29    import org.kuali.student.core.statement.dto.ReqComponentTypeInfo;
30    import org.kuali.student.core.statement.service.StatementService;
31   
32    /**
33    * This is an abstract class for creating a map (containing token/data) used
34    * in template translations.
35    *
36    * @param <T> Type of context to create
37    */
 
38    public abstract class AbstractContext<T> implements Context<T> {
39    /**
40    * <p>These common shared tokens are needed since velocity doesn't
41    * allow periods in tokens.</p>
42    * <p>E.g. kuali.reqComponent.field.type.totalCredits must either be convert to
43    * totalCredits or reqCompFieldType_totalCredits so a template would look
44    * like:</p>
45    * <p>'Student must take $totalCredits of MATH 100'</p>
46    * or
47    * <p>'Student must take $reqCompFieldType_totalCredits of MATH 100'</p>
48    */
49    protected final static String FIELDS_TOKEN = "fields";
50   
51    /*private StatementService statementService;
52   
53    public void setStatementService(StatementService statementService) {
54    this.statementService = statementService;
55    }
56   
57    private void validateReqComponentFields(ReqComponentInfo reqComponent) throws OperationFailedException {
58    try {
59    ReqComponentTypeInfo reqComponentType = statementService.getReqComponentType(reqComponent.getType());
60    Set<String> set = new HashSet<String>();
61    for(ReqCompFieldTypeInfo fieldType : reqComponentType.getReqCompFieldTypeInfos()) {
62    set.add(fieldType.getFieldDescriptor().getId());
63    }
64   
65    for(ReqCompFieldInfo field : reqComponent.getReqCompFields()) {
66    if(!set.contains(field.getType())) {
67    throw new OperationFailedException("Invalid field type: " + field.getType());
68    }
69    }
70    } catch (Exception e) {
71    throw new OperationFailedException(e.getMessage(), e);
72    }
73    }*/
74   
75    /**
76    * Gets requirement component fields as a map.
77    *
78    * @param reqComponent Requirement component
79    * @return Map of requirement component fields
80    */
 
81  988 toggle protected Map<String, String> getReqComponentFieldMap(ReqComponentInfo reqComponent) throws OperationFailedException {
82    //validateReqComponentFields(reqComponent);
83  988 List<ReqCompFieldInfo> fields = reqComponent.getReqCompFields();
84  988 Map<String, String> map = new HashMap<String, String>();
85  988 for (ReqCompFieldInfo field : fields) {
86  2809 String type = field.getType();
87  2809 String value = field.getValue();
88  2809 map.put(type, value);
89    }
90  988 return map;
91    }
92   
93    /**
94    * Gets the value of the ReqCompFieldInfo key.
95    * See {@link ReqCompFieldInfo#getKey()}
96    *
97    * @param reqComponent Requirement component
98    * @param key <code>ReqCompFieldInfo</code> key
99    * @return Value of <code>ReqCompFieldInfo</code>
100    */
 
101  340 toggle protected String getReqComponentFieldValue(ReqComponentInfo reqComponent, String key) throws OperationFailedException {
102  340 return getReqComponentFieldMap(reqComponent).get(key);
103    }
104   
105    /**
106    * Creates the context map (template data) for the requirement component.
107    * Also, adds the field token map to the context map.
108    *
109    * @param reqComponent Requirement component
110    * @throws DoesNotExistException If CLU, CluSet or relation does not exist
111    */
 
112  141 toggle public Map<String, Object> createContextMap(ReqComponentInfo reqComponent) throws OperationFailedException {
113  141 Map<String, Object> contextMap = new HashMap<String, Object>();
114  141 contextMap.put(FIELDS_TOKEN, getReqComponentFieldMap(reqComponent));
115  141 return contextMap;
116    }
117    }