@Override public Library getAdjacentLibrary(long libraryId, boolean before) throws IOException { AdjacencySelector selector = before ? BEFORE : AFTER; Library lib = get(libraryId); if (lib == null) throw new IOException("Library not found"); // get library siblings Criteria criteria = currentSession().createCriteria(LibraryImpl.class); criteria.createAlias("sample", "sample"); criteria.add(Restrictions.eq("sample.id", lib.getSample().getId())); criteria.add(selector.generateCriterion("id", libraryId)); criteria.addOrder(selector.getOrder("id")); criteria.setMaxResults(1); Library library = (Library) criteria.uniqueResult(); if (library != null) return library; // get library cousins criteria = currentSession().createCriteria(LibraryImpl.class); criteria.createAlias("sample", "sample"); criteria.createAlias("sample.project", "project"); criteria.add(Restrictions.eq("project.id", lib.getSample().getProject().getId())); criteria.add(selector.generateCriterion("id", lib.getId())); criteria.addOrder(selector.getOrder("sample.id")); criteria.addOrder(selector.getOrder("id")); criteria.setMaxResults(1); library = (Library) criteria.uniqueResult(); return library; }
if (!isUniqueExternalNameWithinProjectRequired()) return; Collection<SampleIdentity> matches = getIdentitiesByExternalNameOrAliasAndProject(newExternalName, sample.getProject().getId(), true); if (!matches.isEmpty()) { for (SampleIdentity match : matches) {
if (isUniqueExternalNameWithinProjectRequired() && isExternalNameDuplicatedInProject(sample)) { throw new IllegalArgumentException("Sample with external name '" + ((SampleIdentity) sample).getExternalName() + "' already exists in project " + sample.getProject().getShortName()); sample.inheritPermissions(sample.getProject());
dto.setProjectId(from.getProject().getId()); dto.setScientificName(from.getScientificName()); dto.setTaxonIdentifier(from.getTaxonIdentifier());
if (from.getProjectId() != null) { to.setProject(new ProjectImpl()); to.getProject().setId(from.getProjectId());
if (sample.getProject() != null) { sample.setProject(projectStore.get(sample.getProject().getId()));
dto.setParentSampleId(from.getSample().getId()); dto.setParentSampleAlias(from.getSample().getAlias()); dto.setParentSampleProjectId(from.getSample().getProject().getId()); if (from.getSample() instanceof DetailedSample) { dto.setParentSampleClassId(((DetailedSample) from.getSample()).getSampleClass().getId());
v.setSampleType(sam.getSampleType()); Project proj = sam.getProject(); if (proj != null) { v.setProjectAlias(proj.getAlias());