private void validateChange(Library library, Library beforeChange) throws IOException { List<ValidationError> errors = new ArrayList<>(); validateConcentrationUnits(library.getConcentration(), library.getConcentrationUnits(), errors); validateVolumeUnits(library.getVolume(), library.getVolumeUnits(), errors); validateBarcodeUniqueness(library, beforeChange, libraryDao::getByBarcode, errors, "library"); validateDistributionFields(library.isDistributed(), library.getDistributionDate(), library.getDistributionRecipient(), library.getBox(), errors); validateUnboxableFields(library.isDiscarded(), library.isDistributed(), library.getBox(), errors); if (library.getSpikeIn() != null) { if (library.getSpikeInDilutionFactor() == null) { errors.add(new ValidationError("spikeInDilutionFactor", "Spike-in dilution factor must be specified")); } if (library.getSpikeInVolume() == null) { errors.add(new ValidationError("spikeInVolume", "Spike-in volume must be specified")); } } if (!errors.isEmpty()) { throw new ValidationException(errors); } }
dto.setVolume(from.getVolume().toString()); dto.setVolumeUnits(from.getVolumeUnits()); dto.setDnaSize(from.getDnaSize()); dto.setIdentificationBarcode(from.getIdentificationBarcode());
target.setVolume(source.getVolume()); target.setVolumeUnits(target.getVolume() == null ? null : source.getVolumeUnits()); target.setDnaSize(source.getDnaSize()); target.setLibraryType(source.getLibraryType());