@Override @CoverageIgnore public int hashCode() { if (getId() != UNSAVED_ID) { return (int) getId(); } else { final int PRIME = 37; int hashcode = 1; if (getName() != null) hashcode = PRIME * hashcode + getName().hashCode(); if (getAlias() != null) hashcode = 37 * hashcode + getAlias().hashCode(); return hashcode; } }
/** * Equivalency is based on getId() if set, otherwise on name, description and creation date. */ @Override @CoverageIgnore public boolean equals(Object obj) { if (obj == null) return false; if (obj == this) return true; if (!(obj instanceof Experiment)) return false; final Experiment them = (Experiment) obj; // If not saved, then compare resolved actual objects. Otherwise // just compare IDs. if (getId() == UNSAVED_ID || them.getId() == UNSAVED_ID) { if (getName() != null && them.getName() != null) { return getName().equals(them.getName()); } else { return getAlias().equals(them.getAlias()); } } else { return getId() == them.getId(); } }
public static ExperimentDto asDto(@Nonnull Experiment from) { ExperimentDto dto = new ExperimentDto(); dto.setId(from.getId()); dto.setAccession(from.getAccession()); dto.setAlias(from.getAlias()); dto.setDescription(from.getDescription()); dto.setName(from.getName()); dto.setInstrumentModel(asDto(from.getInstrumentModel())); dto.setLibrary(asDto(from.getLibrary(), false)); dto.setPartitions(from.getRunPartitions().stream() .map(entry -> new ExperimentDto.RunPartitionDto(asDto(entry.getRun()), asDto(entry.getPartition()))).collect(Collectors.toList())); dto.setStudy(asDto(from.getStudy())); dto.setTitle(from.getTitle()); return dto; }
experiment.setName(name); ValidationResult nameValidation = namingScheme.validateName(experiment.getName()); if (!nameValidation.isValid()) { throw new IOException("Cannot save Experiment - invalid name:" + nameValidation.getMessage()); ValidationResult nameValidation = namingScheme.validateName(experiment.getName()); if (!nameValidation.isValid()) { throw new IOException("Cannot save Experiment - invalid name:" + nameValidation.getMessage()); original.setAlias(experiment.getAlias()); original.setDescription(experiment.getDescription()); original.setName(experiment.getName()); original.setInstrumentModel(platformService.get(experiment.getInstrumentModel().getId())); original.setLibrary(libraryService.get(experiment.getLibrary().getId()));