package com.springinaction.training.service;
import java.util.Iterator;
import java.util.Set;
import org.apache.log4j.Logger;
import org.springframework.mail.MailException;
import org.springframework.mail.MailSender;
import org.springframework.mail.SimpleMailMessage;
import com.springinaction.training.CourseException;
import com.springinaction.training.dao.CourseDao;
import com.springinaction.training.model.Course;
import com.springinaction.training.model.Student;
public class CourseServiceImpl implements CourseService {
private static Logger LOGGER = Logger.getLogger(CourseServiceImpl.class);
public CourseServiceImpl(CourseDao dao) {
this.courseDao = dao;
}
public Course getCourse(int id) {
return getCourse(new Integer(id));
}
public Course getCourse(Integer id) {
return courseDao.findById(id);
}
public void saveCourse(Course course) {
courseDao.save(course);
}
public void enrollStudentInCourse(Course course,
Student student) throws CourseException {
// TODO: enforcePrerequisites(course, student);
// TODO: Check for schedule conflicts
course.getStudents().add(student);
courseDao.save(course);
}
public Set getAllCourses() {
return courseDao.findAll();
}
public void sendCourseEnrollmentReport() {
Set courseList = courseDao.findAll();
SimpleMailMessage message =
new SimpleMailMessage(this.mailMessage);
StringBuffer messageText = new StringBuffer();
messageText.append("Current enrollment data is as follows:\n\n");
for(Iterator iter = courseList.iterator(); iter.hasNext(); ) {
Course course = (Course) iter.next();
messageText.append(course.getId() + " ");
messageText.append(course.getName() + " ");
int enrollment = courseDao.getEnrollment(course);
messageText.append(enrollment);
}
message.setText(messageText.toString());
try {
mailSender.send(message);
} catch (MailException e) {
LOGGER.error(e.getMessage());
}
}
private void enforcePrerequisites(Course course,
Student student) throws CourseException {
Set completed = studentService.getCompletedCourses(student);
// Check for prerequesites
Set prereqs = course.getPrerequisites();
for(Iterator iter = prereqs.iterator(); iter.hasNext(); ) {
if(!completed.contains(iter.next())) {
throw new CourseException("Prerequisites are not met.");
}
}
// Check for scheduling clash
for(Iterator iter = completed.iterator(); iter.hasNext(); ) {
Course completedCourse = (Course) iter.next();
}
}
// COLLABORATORS
private CourseDao courseDao;
public void setCourseDao(CourseDao courseDao) {
this.courseDao = courseDao;
}
private StudentService studentService;
public void setStudentService(StudentService service) {
this.studentService = service;
}
private MailSender mailSender;
public void setMailSender(MailSender mailSender) {
this.mailSender = mailSender;
}
private SimpleMailMessage mailMessage;
public void setMailMessage(SimpleMailMessage mailMessage) {
this.mailMessage = mailMessage;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
Spring in action 源代码 (130个子文件)
.classpath 353B
index.html 215B
xercesImpl-2.6.2.jar 987KB
ant.jar 936KB
log4j-1.2.8.jar 344KB
acegi-security.jar 237KB
xjavadoc-1.0.2.jar 234KB
commons-collections-2.1.jar 161KB
xdoclet-1.2.jar 143KB
xdoclet-xdoclet-module-1.2.jar 54KB
xdoclet-hibernate-module-1.2.jar 34KB
commons-logging-1.0.2.jar 26KB
CourseServiceImpl.java 3KB
Student.java 3KB
EditCourseController.java 3KB
Course.java 3KB
StudentValidator.java 2KB
CourseListExcelView.java 2KB
ListCourseMultiactionController.java 2KB
RegisterStudentController.java 2KB
PaySettlementConverter.java 2KB
EnrollInCourseController.java 2KB
CourseListPdfView.java 2KB
Instructor.java 2KB
StudentDaoJdbc.java 2KB
EditInstructorController.java 2KB
PaySettlement.java 1KB
StudentServiceImpl.java 1KB
StudentDaoHibernate.java 1KB
PaymentServiceImpl.java 1KB
CreateInstructorController.java 1KB
InstructorServiceImpl.java 1KB
DisplayCourseController.java 1KB
InstructorDaoHibernate.java 1KB
User.java 1KB
PaymentServiceImpl.java 1KB
CourseCountTileController.java 1KB
CourseDaoJdbc.java 1KB
DeleteInstructorController.java 1KB
DisplayInstructorController.java 1KB
ListCourseDocumentController.java 978B
SpringTapestryEngine.java 971B
DisplayTranscriptController.java 912B
ListInstructorsController.java 878B
CourseDaoOjb.java 851B
CourseDaoSqlMap.java 850B
ListCourseController.java 827B
CourseMappingQuery.java 819B
StudentDaoImpl.java 810B
StudentDaoMock.java 787B
KnightOfTheRoundTableTest.java 770B
DisplayCourseThrowawayController.java 758B
CourseDaoImpl.java 749B
CourseDaoMock.java 740B
KnightApp.java 725B
InstructorEditor.java 718B
StudentDaoSqlMap.java 711B
StudentDaoOjb.java 698B
EmailReportJob.java 639B
SimpleDataFieldMaxValueIncrementer.java 606B
HomeController.java 590B
DisplayCourseCommandValidator.java 538B
BabelFishClient.java 535B
MinstrelAdvice.java 500B
CourseService.java 479B
KnightOfTheRoundTable.java 468B
EmailReportTask.java 441B
Authority.java 410B
InstructorDao.java 406B
InstructorService.java 405B
PaymentService.java 358B
StudentService.java 315B
Email.java 304B
CourseDao.java 279B
HolyGrailQuest.java 277B
EnrollCommand.java 274B
StudentDao.java 270B
BabelFishRemote.java 252B
DisplayCourseCommand.java 247B
GrailNotFoundException.java 234B
QuestException.java 205B
CourseException.java 190B
Knight.java 164B
HolyGrail.java 160B
EmailPropertyEditor.java 157B
BabelFishService.java 154B
Quest.java 128B
AuthorizationException.java 97B
SettlementException.java 94B
editInstructorForm.jsp 3KB
editCourseForm.jsp 3KB
mainTemplate.jsp 2KB
registerStudent.jsp 2KB
login.jsp 2KB
courseList.jsp 1KB
courseList_scriptlet.jsp 1KB
courseDetail.jsp 1KB
transcript.jsp 1KB
instructorList.jsp 1002B
instructorDetail.jsp 554B
共 130 条
- 1
- 2
资源评论
apm80
- 粉丝: 0
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功