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.lum.statement.config.context.util;
17  
18  import java.util.List;
19  
20  import org.kuali.student.lum.lu.dto.CluInfo;
21  
22  /**
23   * <p><b><u>Warning</u></b><br/>
24   * DO NOT change the public method signatures of this class.<br/>
25   * The natural language templates are coded against this class's public methods.
26   * If the method signatures are changed then all the templates referencing 
27   * this class will need to be changed as well.</p>
28   * 
29   * This class is inserted into the template engine to get Clu and CluSet 
30   * information. <code>$cluSet</code> is this class.
31   * <p>
32   * Example:
33   * <code>"Student must have completed $intValue of $cluSet.getCluSetAsShortName()"</code>
34   * </p>
35   * 
36   * {@link MockCluSetInfo} wrapper class.
37   */
38  public class NLCluSet {
39  
40  	private String cluSetId;
41  	private List<CluInfo> cluList;
42  	
43  	public NLCluSet(String cluSetId, List<CluInfo> cluList) {
44  		this.cluSetId = cluSetId;
45  		this.cluList = cluList;
46  	}
47  
48  	/**
49  	 * Gets the CLU set id.
50  	 * 
51  	 * @return Clu set id
52  	 */
53  	public String getCluSetId() {
54  		return cluSetId;
55  	}
56  
57  	/**
58  	 * Gets a list of CLUs.
59  	 *  
60  	 * @return List of CLUs
61  	 */
62  	public List<CluInfo> getCluList() {
63  		return this.cluList;
64  	}
65  
66  	/**
67  	 * Gets a particular CLU's official identifier short name.
68  	 * 
69  	 * @param index Index in CLU set
70  	 * @return CLU official identifier short name
71  	 */
72  	public String getCluAsShortName(int index) {
73  		return this.cluList.get(index).getOfficialIdentifier().getShortName();
74  	}
75  
76  	/**
77  	 * Gets a particular CLU's official identifier code at <code>index</code>
78  	 * @param index
79  	 * @return CLU's official identifier code
80  	 */
81  	public String getCluAsCode(int index) {
82  		return this.cluList.get(index).getOfficialIdentifier().getCode();
83  	}
84  
85  	/**
86  	 * Gets all the CLUs' official identifier short name in the CLU set 
87  	 * as a comma separated list.
88  	 *   
89  	 * @return Comma separated list of CLUs' official identifier short name 
90  	 */
91  	public String getCluSetAsShortName() {
92  		StringBuilder sb = new StringBuilder();
93  		if (this.cluList.size() > 1) {
94  		    sb.append("(");
95  		}
96  		for(CluInfo clu : this.cluList) {
97  			sb.append(clu.getOfficialIdentifier().getShortName());
98              if (this.cluList.indexOf(clu) < (this.cluList.size() - 1)) {
99                  sb.append(", ");
100             }
101 		}
102         if (this.cluList.size() > 1) {
103             sb.append(")");
104         }		
105 		return getString(sb);
106 	}
107 
108 	/**
109 	 * Gets all the CLUs' official identifier long name in the CLU set 
110 	 * as a comma separated list.
111 	 * 
112 	 * @return Comma separated list of CLUs' official identifier long name 
113 	 */
114 	public String getCluSetAsLongName() {
115 		StringBuilder sb = new StringBuilder();
116         if (this.cluList.size() > 1) {
117             sb.append("(");
118         }		
119 		for(CluInfo clu : this.cluList) {
120 			sb.append(clu.getOfficialIdentifier().getLongName());
121             if (this.cluList.indexOf(clu) < (this.cluList.size() - 1)) {
122                 sb.append(", ");
123             }
124 		}
125         if (this.cluList.size() > 1) {
126             sb.append(")");
127         }		
128 		return getString(sb);
129 	}
130 
131 	/**
132 	 * Gets all the CLUs' official identifier code in the CLU set 
133 	 * as a comma separated list.
134 	 * 
135 	 * @return Comma separated list of CLUs' official identifier code 
136 	 */
137 	public String getCluSetAsCode() {
138 		StringBuilder sb = new StringBuilder();
139         if (this.cluList.size() > 1) {
140             sb.append("(");
141         }		
142 		for(CluInfo clu : this.cluList) {
143 			sb.append(clu.getOfficialIdentifier().getCode());
144 			if (this.cluList.indexOf(clu) < (this.cluList.size() - 1)) {
145 			    sb.append(", ");
146 			}
147 		}
148         if (this.cluList.size() > 1) {
149             sb.append(")");
150         }		
151 		return getString(sb);
152 	}
153 
154 	private String getString(StringBuilder sb) {
155 		return (sb.length() == 0 ? "No CLUs available in CluSet" : sb.toString());
156 	}
157 
158 	public String toString() {
159 		if(this.cluList == null) {
160 			return "Null CluSet";
161 		}
162 		return "id=" + this.cluSetId;
163 	}
164 }