01: /**********************************************************************************
02: *
03: * $Id: BackwardCompatabilityBusinessImpl.java 17717 2006-10-31 22:42:03Z ray@media.berkeley.edu $
04: *
05: ***********************************************************************************
06: *
07: * Copyright (c) 2006 The Regents of the University of California
08: *
09: * Licensed under the Educational Community License Version 1.0 (the "License");
10: * By obtaining, using and/or copying this Original Work, you agree that you have read,
11: * understand, and will comply with the terms and conditions of the Educational Community License.
12: * You may obtain a copy of the License at:
13: *
14: * http://www.opensource.org/licenses/ecl1.php
15: *
16: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
17: * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
18: * AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
19: * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21: *
22: **********************************************************************************/package org.sakaiproject.tool.gradebook.test.support;
23:
24: import java.util.HashSet;
25: import java.util.Iterator;
26: import java.util.Set;
27:
28: import org.apache.commons.logging.Log;
29: import org.apache.commons.logging.LogFactory;
30: import org.hibernate.HibernateException;
31: import org.hibernate.Session;
32: import org.sakaiproject.tool.gradebook.CourseGrade;
33: import org.sakaiproject.tool.gradebook.GradeMapping;
34: import org.sakaiproject.tool.gradebook.Gradebook;
35: import org.sakaiproject.tool.gradebook.LetterGradeMapping;
36: import org.sakaiproject.tool.gradebook.LetterGradePlusMinusMapping;
37: import org.sakaiproject.tool.gradebook.PassNotPassMapping;
38: import org.springframework.orm.hibernate3.HibernateCallback;
39: import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
40:
41: /**
42: */
43: public class BackwardCompatabilityBusinessImpl extends
44: HibernateDaoSupport implements BackwardCompatabilityBusiness {
45: private static final Log log = LogFactory
46: .getLog(BackwardCompatabilityBusinessImpl.class);
47:
48: public void addGradebook(final String uid, final String name) {
49: getHibernateTemplate().execute(new HibernateCallback() {
50: public Object doInHibernate(Session session)
51: throws HibernateException {
52: // Create and save the gradebook
53: Gradebook gradebook = new Gradebook(name);
54: gradebook.setUid(uid);
55: gradebook.setId((Long) session.save(gradebook)); // Grab the new id
56:
57: // Create the course grade for the gradebook
58: CourseGrade cg = new CourseGrade();
59: cg.setGradebook(gradebook);
60: session.save(cg);
61:
62: // According to the specification, Display Assignment Grades is
63: // on by default, and Display course grade is off.
64: gradebook.setAssignmentsDisplayed(true);
65: gradebook.setCourseGradeDisplayed(false);
66:
67: // Add and save the grade mappings
68:
69: // Set gms = gradebook.getAvailableGradeMappings();
70: Set gms = new HashSet();
71: gms.add(new LetterGradeMapping());
72: gms.add(new LetterGradePlusMinusMapping());
73: gms.add(new PassNotPassMapping());
74:
75: for (Iterator iter = gms.iterator(); iter.hasNext();) {
76: GradeMapping gm = (GradeMapping) iter.next();
77: gm.setGradebook(gradebook);
78: gm.setDefaultValues(); // Populate the grade map
79: gm.setId((Long) session.save(gm)); // grab the new id
80: // if(gm.isDefault()) {
81: if (gm.getClass().equals(
82: LetterGradePlusMinusMapping.class)) {
83: gradebook.setSelectedGradeMapping(gm);
84: }
85: }
86: gradebook.setGradeMappings(gms);
87:
88: // Update the gradebook with the new selected grade mapping
89: session.update(gradebook);
90: return null;
91: }
92: });
93: }
94: }
|