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_source.rar (129个子文件)
.classpath 353B
index.html 215B
spring.jar 1.21MB
ant.jar 936KB
tapestry-3.0.jar 723KB
hsqldb.jar 564KB
struts-1.1.jar 486KB
standard.jar 384KB
log4j-1.2.8.jar 344KB
quartz.jar 312KB
acegi-security.jar 237KB
acegi-security.jar 237KB
xjavadoc-1.0.2.jar 234KB
commons-collections-2.1.jar 161KB
xdoclet-1.2.jar 143KB
oro-2.0.8.jar 64KB
xdoclet-xdoclet-module-1.2.jar 54KB
xdoclet-hibernate-module-1.2.jar 34KB
commons-codec-1.2.jar 28KB
commons-logging-1.0.2.jar 26KB
jms.jar 25KB
jstl.jar 20KB
jta.jar 8KB
acegi-security-taglib.jar 6KB
aopalliance.jar 4KB
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
DisplayCourseThrowawayController.java 758B
CourseDaoImpl.java 749B
CourseDaoMock.java 740B
InstructorEditor.java 718B
StudentDaoSqlMap.java 711B
StudentDaoOjb.java 698B
EmailReportJob.java 639B
SimpleDataFieldMaxValueIncrementer.java 606B
HomeController.java 590B
DisplayCourseCommandValidator.java 538B
BabelFishClient.java 535B
CourseService.java 479B
EmailReportTask.java 441B
Authority.java 410B
InstructorDao.java 406B
InstructorService.java 405B
PaymentService.java 358B
StudentService.java 315B
Email.java 304B
CourseDao.java 279B
EnrollCommand.java 274B
StudentDao.java 270B
BabelFishRemote.java 252B
DisplayCourseCommand.java 247B
CourseException.java 190B
EmailPropertyEditor.java 157B
BabelFishService.java 154B
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
共 129 条
- 1
- 2
资源评论
PP1PP1PP2
- 粉丝: 6
- 资源: 35
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 111111111111111111
- Screenshot_2024-04-30-21-47-24-26.jpg
- Cpp1.cpp1111111111
- 利用ERP流程操作的整个订单流程.ppt
- 最新二开版本源码博客论坛源码,UI很漂亮,可切换皮肤界面.rar
- ModStartBlog现代化个人博客系统 v5.2.0源码.rar
- 带posix库的mingw编译器
- SoraAI是一款功能强大的AI助手,由OpenAI开发,以其出色的语音识别技术、广泛的知识库和高度的人工智能特性而备受瞩目
- Thinkphp开发大气响应式个人博客青春博客网站源码.rar
- 最新PHP博客网站程序源码 ThinkPHP.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功