public void createWorkspaceWithTags( String workspaceName, String description, String username, String origin, String tags) { Assert.notNull(workspaceName); Assert.notNull(username); if (checkNameAvailability(workspaceName, username)) { Workspace ws = new Workspace(); ws.setDownloads(0); ws.setDescription(description); ws.setLastMod(Calendar.getInstance().getTime()); ws.setLaunches(0); ws.setWsVersion(1); ws.setName(workspaceName); UserAccount ua = uar.findByUsername(username); Researcher rese = researcherRepository.findByUserAccountId(ua.getId()); ws.setOwner(rese); String[] array = tags.split("\\s+"); Collection<Tag> wsTags = new ArrayList<>(); for (String a : array) { if (a.length() > 1) { if (tagRepository.findByName(a) != null) wsTags.add(tagRepository.findByName(a)); else { Tag newTag = new Tag(); newTag.setName(a); wsTags.add(tagRepository.save(newTag)); } } } ws.setWorkspaceTags(wsTags); workspaceRepository.saveAndFlush(ws); } }
public Collection<Workspace> findByTag(Tag tag) { assert tag != null; Collection<Workspace> result; String id = String.valueOf(tag.getId()); result = workspaceRepository.findByTag(id); assert result != null; return result; }