@Override public Long getId() { return study.getId(); }
/** * Equivalency is based on getProjectId() if set, otherwise on name, description and creation date. */ @Override public boolean equals(Object obj) { if (obj == null) return false; if (obj == this) return true; if (!(obj instanceof Study)) return false; Study them = (Study) obj; // If not saved, then compare resolved actual objects. Otherwise // just compare IDs. if (getId() == StudyImpl.UNSAVED_ID || them.getId() == StudyImpl.UNSAVED_ID) { if (getName() != null && them.getName() != null) { return getName().equals(them.getName()); } else { return getAlias().equals(them.getAlias()); } } else { return this.getId() == them.getId(); } }
public static StudyDto asDto(@Nonnull Study from) { StudyDto dto = new StudyDto(); dto.setId(from.getId()); dto.setAccession(from.getAccession()); dto.setAlias(from.getAlias()); dto.setDescription(from.getDescription()); dto.setName(from.getName()); dto.setProjectId(from.getProject().getId()); dto.setStudyTypeId(from.getStudyType().getId()); return dto; }
@Override public long save(Study study) throws IOException { if (study.getId() == StudyImpl.UNSAVED_ID) { study.setChangeDetails(authorizationManager.getCurrentUser()); study.setStudyType(studyStore.getType(study.getStudyType().getId())); study.setProject(projectStore.get(study.getProject().getId())); study.setName(LimsUtils.generateTemporaryName()); study.setSecurityProfile(study.getProject().getSecurityProfile()); long id = studyStore.save(study); try { study.setName(namingScheme.generateNameFor(study)); LimsUtils.validateNameOrThrow(study, namingScheme); studyStore.save(study); } catch (MisoNamingException e) { throw new IOException(e); } return id; } else { Study original = studyStore.get(study.getId()); authorizationManager.throwIfNotWritable(original); original.setAccession(study.getAccession()); original.setAlias(study.getAlias()); original.setDescription(study.getDescription()); original.setChangeDetails(authorizationManager.getCurrentUser()); // project is immutable original.setStudyType(studyStore.getType(study.getStudyType().getId())); return studyStore.save(original); } }
experiment.setInstrumentModel(platformService.get(experiment.getInstrumentModel().getId())); experiment.setLibrary(libraryService.get(experiment.getLibrary().getId())); experiment.setStudy(studyService.get(experiment.getStudy().getId())); experiment.setChangeDetails(authorizationManager.getCurrentUser()); if (experiment.getSecurityProfile().getProfileId() == SecurityProfile.UNSAVED_ID) { original.setInstrumentModel(platformService.get(experiment.getInstrumentModel().getId())); original.setLibrary(libraryService.get(experiment.getLibrary().getId())); original.setStudy(studyService.get(experiment.getStudy().getId())); original.setSecurityProfile(securityStore.getSecurityProfileById(experiment.getSecurityProfile().getProfileId())); original.setTitle(experiment.getTitle());