@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"); }
return (DetailedSample) parent; } else { if (isTissueSample(tempParent) && isIdentitySample(tempParent.getParent())) { DetailedSample tissueParent = sampleStore.getMatchingGhostTissue((SampleTissue) tempParent); if (tissueParent != null) {
if (isIdentitySample(from)) { dto = asIdentitySampleDto((SampleIdentity) from); } else if (isTissueSample(from)) { dto = asTissueSampleDto((SampleTissue) from); } else if (isTissueProcessingSample(from)) {
if (isTissueSample(sai)) { SampleTissue st = (SampleTissue) sai; if (st.getTissueMaterial() != null && st.getTissueMaterial().getId() != TissueMaterialImpl.UNSAVED_ID) {
if (isIdentitySample(target)) { applyIdentityChanges((SampleIdentity) target, (SampleIdentity) source); } else if (isTissueSample(target)) { applyTissueChanges((SampleTissue) target, (SampleTissue) source); } else if (isTissueProcessingSample(target)) {