public List<SequencerPartitionContainer> getSequencerPartitionContainers() { return getRunPositions().stream().map(RunPosition::getContainer).collect(Collectors.toList()); }
public boolean isFull() { return getRunPositions().size() >= sequencer.getInstrumentModel().getNumContainers(); }
private void applyContainerChanges(Run target, Run source) { Iterator<RunPosition> iterator = target.getRunPositions().iterator(); while (iterator.hasNext()) { RunPosition existingPos = iterator.next(); if (source.getRunPositions().stream().noneMatch(rp -> isSamePosition(rp, existingPos))) { iterator.remove(); } } for (RunPosition sourcePos : source.getRunPositions()) { RunPosition existingPos = target.getRunPositions().stream() .filter(rp -> isSamePosition(rp, sourcePos)) .findFirst().orElse(null); if (existingPos == null) { RunPosition newPos = new RunPosition(); newPos.setRun(target); newPos.setContainer(sourcePos.getContainer()); newPos.setPosition(sourcePos.getPosition()); target.getRunPositions().add(newPos); } else { existingPos.setContainer(sourcePos.getContainer()); } } }
private void saveContainers(Run run) throws IOException { for (RunPosition runPos : run.getRunPositions()) { runPos.setContainer(containerService.save(runPos.getContainer())); } }
public void addSequencerPartitionContainer(SequencerPartitionContainer f, InstrumentPosition position) { f.setSecurityProfile(getSecurityProfile()); RunPosition rp = new RunPosition(); rp.setRun(this); rp.setContainer(f); rp.setPosition(position); getRunPositions().add(rp); }
newRunPos.setContainer(newContainer); newRunPos.setPosition(position); target.getRunPositions().clear(); target.getRunPositions().add(newRunPos); return true; case 1:
private void validateChanges(Run before, Run changed) throws IOException { List<ValidationError> errors = new ArrayList<>(); if (!changed.getHealth().isDone()) { changed.setCompletionDate(null); } else if (changed.getCompletionDate() == null) { errors.add(new ValidationError("completionDate", "Completion date must be provided for finished run")); } if (before != null) { if (before.getCompletionDate() != null && changed.getCompletionDate() != null && !changed.getCompletionDate().equals(before.getCompletionDate()) && !authorizationManager.isAdminUser()) { errors.add(new ValidationError("completionDate", "Only admin may change completion date")); } if (before.getStartDate() != null && changed.getStartDate() != null && !changed.getStartDate().equals(before.getStartDate()) && !authorizationManager.isAdminUser()) { errors.add(new ValidationError("completionDate", "Only admin may change start date")); } } InstrumentModel platform = changed.getSequencer().getInstrumentModel(); for (RunPosition position : changed.getRunPositions()) { if (position.getPosition() != null && !platform.getPositions().contains(position.getPosition())) { errors.add(new ValidationError( String.format("Platform %s does not have a position %s", platform.getAlias(), position.getPosition()))); } } if (!errors.isEmpty()) { throw new ValidationException(errors); } }
for (RunPosition pos : target.getRunPositions()) { containerService.save(pos.getContainer());