@Override public Long getId() { return sequencerPartitionContainer.getId(); }
@Override public boolean equals(Object obj) { if (obj == null) return false; if (obj == this) return true; if (!(obj instanceof SequencerPartitionContainer)) return false; SequencerPartitionContainer them = (SequencerPartitionContainer) obj; // If not saved, then compare resolved actual objects. Otherwise just compare IDs. if (getId() == SequencerPartitionContainerImpl.UNSAVED_ID || them.getId() == SequencerPartitionContainerImpl.UNSAVED_ID) { return getIdentificationBarcode().equals(them.getIdentificationBarcode()); } else { return getId() == them.getId(); } }
@Override public ValidationResult validateDeletion(SequencerPartitionContainer object) { ValidationResult result = new ValidationResult(); if (object.getRunPositions() != null && !object.getRunPositions().isEmpty()) { result.addError(new ValidationError(String.format("Container %s (%s) is used in %d run(s)", object.getId(), object.getIdentificationBarcode(), object.getRunPositions().size()))); } return result; } }
@Override protected void makeColumns(Run run, Partition p, PoolableElementView dilution, String userName, String[] output) { output[0] = p.getSequencerPartitionContainer().getIdentificationBarcode(); output[1] = p.getPartitionNumber().toString(); output[2] = String.format("%d_%s_%s", p.getSequencerPartitionContainer().getId(), dilution.getLibraryName(), dilution.getDilutionName()); output[3] = dilution.getSampleAlias().replaceAll("\\s", ""); output[4] = dilution.getIndices().stream()// .sorted(Comparator.comparingInt(Index::getPosition))// .map(i -> { if (run.getSequencer().getInstrumentModel().getDataManglingPolicy() == InstrumentDataManglingPolicy.I5_RC && i.getPosition() == 2) { return reverseComplement(i.getSequence()); } return i.getSequence(); })// .collect(Collectors.joining("-")); output[5] = dilution.getLibraryDescription(); output[6] = "N"; output[7] = "NA"; output[8] = userName; }
@Override public SequencerPartitionContainer save(SequencerPartitionContainer container) throws IOException { if (container.getId() == SequencerPartitionContainerImpl.UNSAVED_ID) { return create(container); } else { return update(container); } }
public static PartitionDto asDto(@Nonnull Partition from, boolean includePoolContents) { PartitionDto dto = new PartitionDto(); dto.setId(from.getId()); dto.setContainerId(from.getSequencerPartitionContainer().getId()); dto.setContainerName(from.getSequencerPartitionContainer().getIdentificationBarcode()); dto.setPartitionNumber(from.getPartitionNumber()); dto.setPool(from.getPool() == null ? null : asDto(from.getPool(), includePoolContents, false)); setString(dto::setLoadingConcentration, from.getLoadingConcentration()); dto.setLoadingConcentrationUnits(from.getLoadingConcentrationUnits()); return dto; }
@Override public SequencerPartitionContainer save(SequencerPartitionContainer spc) throws IOException { if (spc.getId() == SequencerPartitionContainerImpl.UNSAVED_ID) { currentSession().save(spc); } else { currentSession().update(spc); } return spc; }
public static ContainerDto asDto(@Nonnull SequencerPartitionContainer from, boolean includePartitions, boolean includePoolContents) { ContainerDto dto = new ContainerDto(); dto.setId(from.getId()); dto.setIdentificationBarcode(from.getIdentificationBarcode()); dto.setModel(asDto(from.getModel())); Run lastRun = from.getLastRun(); if (lastRun != null) { dto.setLastRunAlias(lastRun.getAlias()); dto.setLastRunId(lastRun.getId()); dto.setLastSequencerId(lastRun.getSequencer().getId()); dto.setLastSequencerName(lastRun.getSequencer().getName()); } if (from.getLastModified() != null) { dto.setLastModified(formatDateTime(from.getLastModified())); } if (from.getClusteringKit() != null) { dto.setClusteringKit(asDto(from.getClusteringKit())); } if (from.getMultiplexingKit() != null) { dto.setMultiplexingKit(asDto(from.getMultiplexingKit())); } if (includePartitions) { dto.setPartitions(asPartitionDtos(from.getPartitions(), includePoolContents)); } return dto; }
@Override public SequencerPartitionContainer update(SequencerPartitionContainer container) throws IOException { SequencerPartitionContainer managed = get(container.getId()); authorizationManager.throwIfNotWritable(managed); applyChanges(container, managed); managed.setChangeDetails(authorizationManager.getCurrentUser()); loadChildEntities(managed); return containerDao.save(managed); }