class CourseProcessor implements ItemProcessor<Course, Course> {

    public Course process(Course course) throws Exception {

        // JUST IGNORE THE DUPLICATES
        if (!CampusUtils.addIfNotAlreadyProcessed(processedIdsSet, course.getId())) {
            LOG.debug("This is a duplicate of this course [" + course.getId() + "]");
            return null;
        }

        course.setModifiedDate(new Date());

        if (course.getTitle().contains(CampusUtils.SEMICOLON_REPLACEMENT)) {
            course.setTitle(StringUtils.replace(course.getTitle(), CampusUtils.SEMICOLON_REPLACEMENT, CampusUtils.SEMICOLON));
        }

        String shortSemester = buildShortSemester(course.getSemester());
        if (shortSemester != null) {
            course.setShortSemester(shortSemester);
            course.setTitle(shortSemester.concat(WHITESPACE).concat(course.getTitle()));
        }

        if (enabledOrgs.isEmpty()) {
            if (course.getIpz().equalsIgnoreCase("X")) {
                course.setEnabled("1");
            }
        } else if (enabledOrgs.contains(course.getOrg1()) || enabledOrgs.contains(course.getOrg2()) || enabledOrgs.contains(course.getOrg3())
                || enabledOrgs.contains(course.getOrg4()) || enabledOrgs.contains(course.getOrg5())) {
            course.setEnabled("1");
        }

        return course;
    }

}