package fi.pyramus.services.entities.modules; import fi.otavanopisto.pyramus.domainmodel.base.Tag; import fi.otavanopisto.pyramus.domainmodel.modules.Module; 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.courses.CourseEducationTypeEntity; import fi.pyramus.services.entities.users.UserEntity; public class ModuleEntityFactory implements EntityFactory<ModuleEntity> { public ModuleEntity buildFromDomainObject(Object domainObject) { if (domainObject == null) return null; Module module = (Module) domainObject; UserEntity creator = EntityFactoryVault.buildFromDomainObject((StaffMember) module.getCreator()); UserEntity lastModifier = EntityFactoryVault.buildFromDomainObject((StaffMember) module.getLastModifier()); SubjectEntity subject = EntityFactoryVault.buildFromDomainObject(module.getSubject()); Double courseLengthUnits = null; Long courseLengthUnitId = null; if (module.getCourseLength() != null) { courseLengthUnits = module.getCourseLength().getUnits(); if (module.getCourseLength().getUnit() != null) courseLengthUnitId = module.getCourseLength().getUnit().getId(); } CourseEducationTypeEntity[] courseEducationTypes = (CourseEducationTypeEntity[]) EntityFactoryVault.buildFromDomainObjects(module.getCourseEducationTypes()); ModuleComponentEntity[] moduleComponents = (ModuleComponentEntity[]) EntityFactoryVault.buildFromDomainObjects(module.getModuleComponents()); int i = 0; String[] tags = new String[module.getTags().size()]; for (Tag tag : module.getTags()) { tags[i++] = tag.getText(); } return new ModuleEntity(module.getId(), module.getName(), tags, creator, module.getCreated(), lastModifier, module.getLastModified(), module.getDescription(), subject, module.getCourseNumber(), courseLengthUnits, courseLengthUnitId, courseEducationTypes, module.getArchived(), moduleComponents); } }