@Override public Long getId() { return pool.getId(); }
public static PoolDto asDto(@Nonnull Pool from, boolean includeContents, boolean includeBoxPositions) { PoolDto dto = new PoolDto(); dto.setId(from.getId()); dto.setName(from.getName()); dto.setAlias(from.getAlias());
Pool managed = poolStore.get(pool.getId()); authorizationManager.throwIfNotWritable(managed); boxService.throwIfBoxPositionIsFilled(pool);
@Override public String toString() { StringBuffer sb = new StringBuffer(); sb.append(getId()); sb.append(" : "); sb.append(getPartitionNumber()); if (getPool() != null) { sb.append(" : "); sb.append(getPool().getId()); } return sb.toString(); }
@Override public void deleteNote(Pool pool, Long noteId) throws IOException { if (noteId == null || noteId.equals(Note.UNSAVED_ID)) { throw new IllegalArgumentException("Cannot delete an unsaved Note"); } Pool managed = poolStore.get(pool.getId()); Note deleteNote = null; for (Note note : managed.getNotes()) { if (note.getNoteId().equals(noteId)) { deleteNote = note; break; } } if (deleteNote == null) { throw new IOException("Note " + noteId + " not found for Pool " + pool.getId()); } authorizationManager.throwIfNonAdminOrMatchingOwner(deleteNote.getOwner()); managed.getNotes().remove(deleteNote); poolStore.save(managed); }
@Override public void authorizeDeletion(PoolOrder object) throws IOException { Pool pool = poolService.get(object.getPool().getId()); authorizationManager.throwIfNotWritable(pool); }
@Override public int compareTo(Pool t) { if (getId() != 0L && t.getId() != 0L) { if (getId() < t.getId()) return -1; if (getId() > t.getId()) return 1; } else if (getName() != null && t.getName() != null) { return getName().compareTo(t.getName()); } else if (getAlias() != null && t.getAlias() != null) { return getAlias().compareTo(t.getAlias()); } return 0; }
@Override public String getDeleteDescription() { return "Pool " + getPool().getId() + " - " + getPartitions() + " partitions of " + getSequencingParameter().getName(); }
@Override public long save(final Pool pool) throws IOException { currentSession().flush(); Long id; if (pool.getId() == PoolImpl.UNSAVED_ID) { id = (Long) currentSession().save(pool); currentSession().flush(); } else { if (pool.isDiscarded()) { getBoxStore().removeBoxableFromBox(pool); pool.setVolume(0D); } id = pool.getId(); currentSession().update(pool); currentSession().flush(); ChangeLogEntry log; while ((log = changeLogQueue.poll()) != null) { pool.createChangeLog(log.summary, "contents", log.pool.getLastModifier()); } } return id; }
@Override public void beforeDelete(Pool object) throws IOException { Set<PoolOrder> orders = poolOrderService.getByPool(object.getId()); poolOrderService.bulkDelete(orders); Box box = object.getBox(); if (box != null) { box.getBoxPositions().remove(object.getBoxPosition()); boxService.save(box); } }
@Override public void addNote(Pool pool, Note note) throws IOException { Pool managed = poolStore.get(pool.getId()); authorizationManager.throwIfNotWritable(managed); note.setCreationDate(new Date()); note.setOwner(authorizationManager.getCurrentUser()); managed.addNote(note); poolStore.save(managed); }
@Override public void beforeDelete(PoolOrder object) throws IOException { Pool pool = poolService.get(object.getPool().getId()); pool.setLastModifier(authorizationManager.getCurrentUser()); poolService.save(pool); }
@Override public Long create(PoolOrder poolOrder) throws IOException { Pool pool = poolService.get(poolOrder.getPool().getId()); authorizationManager.throwIfNotWritable(pool); if (pool == null) { throw new IOException("No such pool: " + poolOrder.getPool().getId()); } User user = authorizationManager.getCurrentUser(); poolOrder.setPool(pool); poolOrder.setSequencingParameters(sequencingParametersService.get(poolOrder.getSequencingParameter().getId())); poolOrder.setCreatedBy(user); poolOrder.setUpdatedBy(user); return poolOrderDao.addPoolOrder(poolOrder); }
@Override public void update(PoolOrder poolOrder) throws IOException { Pool owner = poolService.get(poolOrder.getPool().getId()); authorizationManager.throwIfNotWritable(owner); User user = authorizationManager.getCurrentUser(); poolOrder.setCreatedBy(user); poolOrder.setUpdatedBy(user); poolOrderDao.update(poolOrder); }
@Override public void applyChanges(SequencerPartitionContainer source, SequencerPartitionContainer managed) throws IOException { managed.setIdentificationBarcode(source.getIdentificationBarcode()); managed.setDescription(source.getDescription()); managed.setClusteringKit(source.getClusteringKit()); managed.setMultiplexingKit(source.getMultiplexingKit()); if (LimsUtils.isOxfordNanoporeContainer(managed)) { applyOxfordNanoporeChanges((OxfordNanoporeContainer) source, (OxfordNanoporeContainer) managed); } for (Partition sourcePartition : source.getPartitions()) { for (Partition managedPartition : managed.getPartitions()) { if (sourcePartition == null || managedPartition == null) { throw new IOException("Partition from " + (sourcePartition == null ? "client" : "database") + " is null."); } if (sourcePartition.getId() == managedPartition.getId()) { Pool sourcePool = sourcePartition.getPool(); Pool managedPool = managedPartition.getPool(); if (sourcePool == null) { managedPartition.setPool(null); } else if (managedPool == null || sourcePool.getId() != managedPool.getId()) { managedPartition.setPool(poolService.get(sourcePool.getId())); } break; } } } }
@Override public void update(Partition partition) throws IOException { Partition original = containerDao.getPartitionById(partition.getId()); authorizationManager.throwIfNotWritable(original.getSequencerPartitionContainer()); if (partition.getPool() != null) { partition.setPool(poolService.get(partition.getPool().getId())); } validateChange(partition, original); applyChanges(original, partition); original.getSequencerPartitionContainer().setChangeDetails(authorizationManager.getCurrentUser()); containerDao.save(original.getSequencerPartitionContainer()); }
public static PoolOrderCompletionDto asDto(@Nonnull PoolOrderCompletion from) { PoolOrderCompletionDto dto = new PoolOrderCompletionDto(); dto.setId(from.getPool().getId() + "_" + from.getSequencingParameters().getId()); dto.setPool(asDto(from.getPool(), false, false)); dto.setParameters(asDto(from.getSequencingParameters())); dto.setLastUpdated(formatDateTime(from.getLastUpdated())); dto.setRemaining(from.getRemaining()); dto.setCompleted(from.get(HealthType.Completed)); dto.setFailed(from.get(HealthType.Failed)); dto.setRequested(from.get(HealthType.Requested)); dto.setRunning(from.get(HealthType.Running)); dto.setStarted(from.get(HealthType.Started)); dto.setStopped(from.get(HealthType.Stopped)); dto.setUnknown(from.get(HealthType.Unknown)); dto.setLoaded(from.getLoaded()); dto.setDescription(from.getDescription()); return dto; }