@Override public SampleTissue getMatchingGhostTissue(SampleTissue tissue) { validateGhostTissueLookup(tissue); Criteria criteria = currentSession().createCriteria(SampleTissueImpl.class); criteria.add(Restrictions.eq("isSynthetic", true)); criteria.add(Restrictions.eq("parent.id", tissue.getParent().getId())); criteria.add(Restrictions.eq("tissueOrigin.id", tissue.getTissueOrigin().getId())); criteria.add(Restrictions.eq("tissueType.id", tissue.getTissueType().getId())); criteria.add(Restrictions.eq("timesReceived", tissue.getTimesReceived())); criteria.add(Restrictions.eq("tubeNumber", tissue.getTubeNumber())); if (tissue.getPassageNumber() == null) { criteria.add(Restrictions.isNull("passageNumber")); } else { criteria.add(Restrictions.eq("passageNumber", tissue.getPassageNumber())); } return (SampleTissue) criteria.uniqueResult(); }
parent.setId(sample.getId()); aliquot.setParent(parent);
private void validateGhostTissueLookup(SampleTissue tissue) { if (tissue.getParent() == null || tissue.getParent().getId() == SampleImpl.UNSAVED_ID || tissue.getTissueOrigin() == null || tissue.getTissueOrigin().getId() == TissueOrigin.UNSAVED_ID || tissue.getTissueType() == null || tissue.getTissueType().getId() == TissueTypeImpl.UNSAVED_ID || tissue.getTimesReceived() == null || tissue.getTubeNumber() == null) { throw new IllegalArgumentException("Missing tissue attributes required for lookup"); } }
@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); }
dto.setParentId(from.getParent().getId()); dto.setParentAlias(from.getParent().getAlias()); dto.setParentTissueSampleClassId(from.getParent().getSampleClass().getId());