package fi.pyramus.services.entities.courses; import fi.otavanopisto.pyramus.domainmodel.base.Tag; import fi.otavanopisto.pyramus.domainmodel.courses.Course; import fi.otavanopisto.pyramus.domainmodel.users.StaffMember; import fi.pyramus.services.entities.EntityFactory; import fi.pyramus.services.entities.EntityFactoryVault; import fi.pyramus.services.entities.base.SubjectEntity; import fi.pyramus.services.entities.users.UserEntity; public class CourseEntityFactory implements EntityFactory<CourseEntity> { public CourseEntity buildFromDomainObject(Object domainObject) { if (domainObject == null) return null; Course course = (Course) domainObject; UserEntity creator = EntityFactoryVault.buildFromDomainObject((StaffMember) course.getCreator()); UserEntity lastModifier = EntityFactoryVault.buildFromDomainObject((StaffMember) course.getLastModifier()); SubjectEntity subject = EntityFactoryVault.buildFromDomainObject(course.getSubject()); CourseComponentEntity[] components = (CourseComponentEntity[]) EntityFactoryVault.buildFromDomainObjects(course.getCourseComponents()); CourseEducationTypeEntity[] educationTypes = (CourseEducationTypeEntity[]) EntityFactoryVault.buildFromDomainObjects(course.getCourseEducationTypes()); Double courseLengthUnits = null; Long courseLengthUnitId = null; if (course.getCourseLength() != null) { courseLengthUnits = course.getCourseLength().getUnits(); if (course.getCourseLength().getUnit() != null) courseLengthUnitId = course.getCourseLength().getUnit().getId(); } int i = 0; String[] tags = new String[course.getTags().size()]; for (Tag tag : course.getTags()) { tags[i++] = tag.getText(); } return new CourseEntity(course.getId(), course.getName(), course.getNameExtension(), tags, creator, course.getCreated(), lastModifier, course.getLastModified(), course.getDescription(), subject, course.getCourseNumber(), courseLengthUnits, courseLengthUnitId, educationTypes, course.getArchived(), components, course .getModule().getId(), course.getBeginDate(), course.getEndDate()); } }