private void setIdentity(DetailedSample descendant) throws IOException, MisoNamingException { if (descendant.getParent() == null) { throw new IllegalArgumentException(ERR_MISSING_PARENT_ID); } DetailedSample child = descendant; DetailedSample parent = descendant.getParent(); while (parent.getParent() != null) { child = parent; parent = child.getParent(); } if (!isIdentitySample(parent)) { throw new IllegalStateException("Missing Identity at root of hierarchy"); } if (descendant.getIdentityId() != null) { parent.setId(descendant.getIdentityId()); } SampleIdentity identity = findOrCreateIdentity(descendant, (SampleIdentity) parent); child.setParent(identity); }
tissue.setSampleClass(new SampleClassImpl()); tissue.getSampleClass().setId(childDto.getParentTissueSampleClassId()); tissue.setParent(parent); parent = tissue; tissueProcessing.setSampleClass(new SampleClassImpl()); tissueProcessing.getSampleClass().setId(stockDto.getTissueProcessingClassId()); tissueProcessing.setParent(parent); parent = tissueProcessing; stock.setSampleClass(new SampleClassImpl()); stock.getSampleClass().setId(aliquotDto.getStockClassId()); stock.setParent(parent); parent = stock; parentAliquot.setSampleClass(new SampleClassImpl()); parentAliquot.getSampleClass().setId(aliquotDto.getParentAliquotClassId()); parentAliquot.setParent(parent); parent = parentAliquot;
@Override public void update(Sample sample) throws IOException { Sample managed = get(sample.getId()); managed.setChangeDetails(authorizationManager.getCurrentUser()); boolean validateAliasUniqueness = !managed.getAlias().equals(sample.getAlias()); authorizationManager.throwIfNotWritable(managed); maybeRemoveFromBox(sample); boxService.throwIfBoxPositionIsFilled(sample); validateChange(sample, managed); applyChanges(managed, sample); loadChildEntities(managed); if (isDetailedSample(managed)) { DetailedSample detailedUpdated = (DetailedSample) managed; if (detailedUpdated.getParent() != null) { detailedUpdated.setParent((DetailedSample) get(detailedUpdated.getParent().getId())); validateHierarchy(detailedUpdated); } } save(managed, validateAliasUniqueness); boxService.updateBoxableLocation(sample); }
to.setParent(getParent(from)); if (!LimsUtils.isStringEmptyOrNull(from.getExternalNames()) && to.getParent() != null) { SampleIdentity identity = LimsUtils.getParent(SampleIdentity.class, to);