private void validateSamples(Array array, List<ValidationError> errors) { array.getSamples().forEach((pos, sam) -> { if (sam == null) { // wasn't found during #loadChildEntities errors.add(new ValidationError("Invalid Sample in position " + pos)); } else if (isDetailedSample(sam) && !isAliquotSample(sam)) { errors.add(new ValidationError("Sample in position " + pos + " must be an aliquot")); } }); }
private void validateParentOrThrow(Library library) { if (!isDetailedLibrary(library)) return; if (!isAliquotSample(library.getSample())) { String sc = null; if (isDetailedSample(library.getSample())) { DetailedSample sample = (DetailedSample) library.getSample(); sc = sample.getSampleClass() == null ? "not set" : sample.getSampleClass().getAlias(); } else { sc = "Plain Sample"; } throw new IllegalArgumentException(String.format("Sample Class '%s' is not a valid parent for Libraries. Must be an aliquot", sc)); } }
@Override public String generate(Sample sample) throws MisoNamingException, IOException { if (!LimsUtils.isDetailedSample(sample)) { throw new IllegalArgumentException("Can only generate an alias for detailed samples"); } DetailedSample detailed = (DetailedSample) sample; if (isIdentitySample(detailed)) { return generateIdentityAlias((SampleIdentity) detailed); } for (DetailedSample parent = detailed.getParent(); parent != null; parent = parent.getParent()) { if (isAliquotSample(parent)) { return addSiblingTag(parent.getAlias(), detailed); } if (isTissueSample(parent)) { if (isTissueSample(detailed)) { // tissues parented to tissues return generateTissueAlias((SampleTissue) detailed, LimsUtils.getParent(SampleIdentity.class, parent)); } else { return addSiblingTag(parent.getAlias(), detailed); } } if (isIdentitySample(parent)) { if (!isTissueSample(detailed)) throw new IllegalArgumentException("Missing parent tissue"); return generateTissueAlias((SampleTissue) detailed, (SampleIdentity) parent); } } throw new IllegalStateException("Unexpected conditions for alias generation"); }
} else if (isTissueProcessingSample(from)) { dto = asTissueProcessingSampleDto((SampleTissueProcessing) from); } else if (isAliquotSample(from)) { dto = asAliquotSampleDto((SampleAliquot) from); } else if (isStockSample(from)) {
if (isAliquotSample(sai)) { SampleAliquot sa = (SampleAliquot) sai; if (sa.getSamplePurpose() != null && sa.getSamplePurpose().getId() != SubprojectImpl.UNSAVED_ID) {
} else if (isTissueProcessingSample(target)) { applyTissueProcessingChanges((SampleTissueProcessing) target, (SampleTissueProcessing) source); } else if (isAliquotSample(target)) { applyAliquotChanges((SampleAliquot) target, (SampleAliquot) source); } else if (isStockSample(target)) {