Example usage for org.springframework.util StringUtils commaDelimitedListToSet

List of usage examples for org.springframework.util StringUtils commaDelimitedListToSet

Introduction

In this page you can find the example usage for org.springframework.util StringUtils commaDelimitedListToSet.

Prototype

public static Set<String> commaDelimitedListToSet(@Nullable String str) 

Source Link

Document

Convert a comma delimited list (e.g., a row from a CSV file) into a set.

Usage

From source file:org.cloudfoundry.identity.uaa.oauth.UaaAuthorizationRequestManagerTests.java

@Test
public void testResourceIdsWithCustomSeparator() {
    factory.setScopeSeparator("--");
    client.setAuthorities(AuthorityUtils.commaSeparatedStringToAuthorityList("foo--bar,spam--baz"));
    parameters.put("grant_type", "client_credentials");
    AuthorizationRequest request = factory.createAuthorizationRequest(parameters);
    assertEquals(StringUtils.commaDelimitedListToSet("foo,spam"), request.getResourceIds());
}

From source file:com.consol.citrus.admin.service.TestCaseService.java

/**
 * Get total number of tests in project.
 * @param project//from w  w w .java2s .co m
 * @return
 */
public long getTestCount(Project project) {
    long testCount = 0L;
    try {
        List<File> sourceFiles = FileUtils.findFiles(project.getJavaDirectory(),
                StringUtils.commaDelimitedListToSet(project.getSettings().getJavaFilePattern()));
        for (File sourceFile : sourceFiles) {
            String sourceCode = FileUtils.readToString(new FileSystemResource(sourceFile));

            testCount += StringUtils.countOccurrencesOf(sourceCode, "@CitrusTest");
            testCount += StringUtils.countOccurrencesOf(sourceCode, "@CitrusXmlTest");
        }
    } catch (IOException e) {
        log.warn("Failed to read Java source files - list of test cases for this project is incomplete", e);
    }

    return testCount;
}

From source file:com.ephesoft.dcma.mail.service.MailServiceImpl.java

@Override
public void mailOnWorkflowError(BatchInstance batchInstance, Exception exception, String subject,
        String mailTemplatePath, String errorPlugin) throws DCMAApplicationException {
    LOGGER.trace("Creating  mailMetaData in Mail service impl");
    if (null != batchInstance && null != exception) {
        MailMetaData metaData = new MailMetaData();
        metaData.setFromAddress(this.fromMail);
        metaData.setFromName(this.fromMail);
        metaData.setSubject(subject);//from w w  w .  j a v  a2s.  com
        metaData.setToAddresses(new ArrayList<String>(StringUtils.commaDelimitedListToSet(toMail)));
        MailContentModel model = new MailContentModel();
        model.add(MailConstants.WORKFLOW, batchInstance.getBatchClass().getName());
        model.add(MailConstants.BATCH_INSTANCE, batchInstance.getIdentifier());
        model.add(MailConstants.BATCH_NAME, batchInstance.getBatchName());
        String exceptionMessage = exception.getMessage();
        if (null == exceptionMessage) {
            exceptionMessage = ICommonConstants.EMPTY_STRING;
        }
        model.add(MailConstants.ERROR_MESSAGE, exceptionMessage);
        model.add(MailConstants.ERROR_LOG, ExceptionUtils.getFullStackTrace(exception));
        model.add(MailConstants.ERROR_PLUGIN, errorPlugin);
        try {
            sendTextMailWithClasspathTemplate(metaData, mailTemplatePath, model);
        } catch (final SendMailException sendMailException) {
            LOGGER.error("Error encountered while sending mail.", sendMailException);
            throw new DCMAApplicationException("Error encountered while sending mail.", sendMailException);
        }
    } else {
        LOGGER.error(
                "Either or both batchInstance or exception object is null. Error notification mail cann't be sent.");
    }
    LOGGER.trace("Exiting mail send on error for workflow in Mail service impl");
}

From source file:org.wallride.service.ArticleService.java

@CacheEvict(value = WallRideCacheConfiguration.ARTICLE_CACHE, allEntries = true)
public Article saveArticle(ArticleUpdateRequest request, AuthorizedUser authorizedUser) {
    postRepository.lock(request.getId());
    Article article = articleRepository.findOneByIdAndLanguage(request.getId(), request.getLanguage());
    LocalDateTime now = LocalDateTime.now();

    String code = request.getCode();
    if (code == null) {
        try {//from   ww  w  .j  a v a 2 s . c  om
            code = new CodeFormatter().parse(request.getTitle(), LocaleContextHolder.getLocale());
        } catch (ParseException e) {
            throw new ServiceException(e);
        }
    }
    if (!StringUtils.hasText(code)) {
        if (!article.getStatus().equals(Post.Status.DRAFT)) {
            throw new EmptyCodeException();
        }
    }
    if (!article.getStatus().equals(Post.Status.DRAFT)) {
        Post duplicate = postRepository.findOneByCodeAndLanguage(code, request.getLanguage());
        if (duplicate != null && !duplicate.equals(article)) {
            throw new DuplicateCodeException(code);
        }
    }

    if (!article.getStatus().equals(Post.Status.DRAFT)) {
        article.setCode(code);
        article.setDraftedCode(null);
    } else {
        article.setCode(null);
        article.setDraftedCode(code);
    }

    Media cover = null;
    if (request.getCoverId() != null) {
        cover = entityManager.getReference(Media.class, request.getCoverId());
    }
    article.setCover(cover);
    article.setTitle(request.getTitle());
    article.setBody(request.getBody());

    //      User author = null;
    //      if (request.getAuthorId() != null) {
    //         author = entityManager.getReference(User.class, request.getAuthorId());
    //      }
    //      article.setAuthor(author);

    LocalDateTime date = request.getDate();
    if (!Post.Status.DRAFT.equals(article.getStatus())) {
        if (date == null) {
            date = now;
        } else if (date.isAfter(now)) {
            article.setStatus(Post.Status.SCHEDULED);
        } else {
            article.setStatus(Post.Status.PUBLISHED);
        }
    }
    article.setDate(date);
    article.setLanguage(request.getLanguage());

    article.getCategories().clear();
    for (long categoryId : request.getCategoryIds()) {
        article.getCategories().add(entityManager.getReference(Category.class, categoryId));
    }

    article.getTags().clear();
    Set<String> tagNames = StringUtils.commaDelimitedListToSet(request.getTags());
    if (!CollectionUtils.isEmpty(tagNames)) {
        for (String tagName : tagNames) {
            Tag tag = tagRepository.findOneForUpdateByNameAndLanguage(tagName, request.getLanguage());
            if (tag == null) {
                tag = new Tag();
                tag.setName(tagName);
                tag.setLanguage(request.getLanguage());
                article.setCreatedAt(now);
                article.setCreatedBy(authorizedUser.toString());
                article.setUpdatedAt(now);
                article.setUpdatedBy(authorizedUser.toString());
                tag = tagRepository.saveAndFlush(tag);
            }
            article.getTags().add(tag);
        }
    }

    article.getRelatedPosts().clear();
    Set<Post> relatedPosts = new HashSet<>();
    for (long relatedId : request.getRelatedPostIds()) {
        relatedPosts.add(entityManager.getReference(Post.class, relatedId));
    }
    article.setRelatedToPosts(relatedPosts);

    Seo seo = new Seo();
    seo.setTitle(request.getSeoTitle());
    seo.setDescription(request.getSeoDescription());
    seo.setKeywords(request.getSeoKeywords());
    article.setSeo(seo);

    List<Media> medias = new ArrayList<>();
    if (StringUtils.hasText(request.getBody())) {
        //         Blog blog = blogService.getBlogById(Blog.DEFAULT_ID);
        String mediaUrlPrefix = wallRideProperties.getMediaUrlPrefix();
        Pattern mediaUrlPattern = Pattern.compile(String.format("%s([0-9a-zA-Z\\-]+)", mediaUrlPrefix));
        Matcher mediaUrlMatcher = mediaUrlPattern.matcher(request.getBody());
        while (mediaUrlMatcher.find()) {
            Media media = mediaRepository.findOneById(mediaUrlMatcher.group(1));
            medias.add(media);
        }
    }
    article.setMedias(medias);

    article.setUpdatedAt(now);
    article.setUpdatedBy(authorizedUser.toString());

    Map<CustomField, CustomFieldValue> valueMap = new LinkedHashMap<>();
    for (CustomFieldValue value : article.getCustomFieldValues()) {
        valueMap.put(value.getCustomField(), value);
    }

    article.getCustomFieldValues().clear();
    if (!CollectionUtils.isEmpty(request.getCustomFieldValues())) {
        for (CustomFieldValueEditForm valueForm : request.getCustomFieldValues()) {
            CustomField customField = entityManager.getReference(CustomField.class,
                    valueForm.getCustomFieldId());
            CustomFieldValue value = valueMap.get(customField);
            if (value == null) {
                value = new CustomFieldValue();
            }
            value.setCustomField(customField);
            value.setPost(article);
            if (valueForm.getFieldType().equals(CustomField.FieldType.CHECKBOX)) {
                if (!ArrayUtils.isEmpty(valueForm.getTextValues())) {
                    value.setTextValue(String.join(",", valueForm.getTextValues()));
                } else {
                    value.setTextValue(null);
                }
            } else {
                value.setTextValue(valueForm.getTextValue());
            }
            value.setStringValue(valueForm.getStringValue());
            value.setNumberValue(valueForm.getNumberValue());
            value.setDateValue(valueForm.getDateValue());
            value.setDatetimeValue(valueForm.getDatetimeValue());
            if (!value.isEmpty()) {
                article.getCustomFieldValues().add(value);
            }
        }
    }

    return articleRepository.save(article);
}

From source file:com.ephesoft.dcma.mail.service.MailServiceImpl.java

@Override
public void mailOnError(final String subject, final Message previousMailMessage, final String batchClassName,
        final String userName, final String mailTemplatePath) throws DCMAApplicationException {
    LOGGER.debug("Creating  mailMetaData odr mail or error.");
    if (null != subject && null != batchClassName && null != userName && null != previousMailMessage) {
        final MailMetaData metaData = new MailMetaData();
        metaData.setFromAddress(fromMail);
        metaData.setFromName(fromMail);/*from ww  w.j  a v  a2  s  . c  om*/
        metaData.setSubject(subject);
        metaData.setToAddresses(new ArrayList<String>(StringUtils.commaDelimitedListToSet(toMail)));
        final MailContentModel model = new MailContentModel();
        model.add(MailConstants.BATCH_CLASS, batchClassName);
        model.add(MailConstants.USER_ID, userName);
        try {
            String ccString = Arrays.toString(previousMailMessage.getHeader(MailConstants.CC))
                    .replace(MailConstants.OPENING_BRACKET, MailConstants.SPACE)
                    .replace(MailConstants.CLOSING_BRACKET, MailConstants.EMPTY_STRING);
            String toString = Arrays.toString(previousMailMessage.getHeader(MailConstants.TO))
                    .replace(MailConstants.OPENING_BRACKET, MailConstants.SPACE)
                    .replace(MailConstants.CLOSING_BRACKET, MailConstants.EMPTY_STRING);

            // below date format will be used to format date string received
            // from mail header. Mail header can provide a lot more
            // info.
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat(MailConstants.DATE_FORMAT);
            model.add(MailConstants.SUBJECT, previousMailMessage.getSubject());
            model.add(MailConstants.FROM,
                    Arrays.toString(previousMailMessage.getHeader(MailConstants.FROM))
                            .replace(MailConstants.OPENING_BRACKET, MailConstants.SPACE)
                            .replace(MailConstants.CLOSING_BRACKET, ""));
            model.add(MailConstants.TO,
                    toString.equalsIgnoreCase(MailConstants.NULL_STRING) ? MailConstants.EMPTY_STRING
                            : toString);
            model.add(MailConstants.CC,
                    ccString.equalsIgnoreCase(MailConstants.NULL_STRING) ? MailConstants.EMPTY_STRING
                            : ccString);
            model.add(MailConstants.RECEIVED_DATE,
                    simpleDateFormat
                            .parseObject(previousMailMessage.getHeader(MailConstants.DATE_STRING)[0].toString())
                            .toString());
        } catch (javax.mail.MessagingException mailException) {
            LOGGER.error("Error encountered while extarcting info from previos mail object", mailException);
            throw new DCMAApplicationException(
                    "Error encountered while extarcting infor from previos mail object", mailException);
        } catch (java.text.ParseException parseException) {
            LOGGER.error(
                    "Error encountered while parsing date extracted from mail header of previos mail object",
                    parseException);
            throw new DCMAApplicationException(
                    "Error encountered while parsing received date from previos mail object", parseException);
        }
        LOGGER.debug(
                EphesoftStringUtil.concatenate("Batch Class Name: ", batchClassName, "  UserName: ", userName));
        sendTextMailWithClasspathTemplate(metaData, mailTemplatePath, model, previousMailMessage);
    } else {
        LOGGER.error(
                "Either or all of the following values are null. Error notification mail cann't be sent. \n Subject,BatchClassName, UserName");
    }
}

From source file:org.wallride.service.PageService.java

@CacheEvict(value = WallRideCacheConfiguration.PAGE_CACHE, allEntries = true)
public Page savePage(PageUpdateRequest request, AuthorizedUser authorizedUser) {
    postRepository.lock(request.getId());
    Page page = pageRepository.findOneByIdAndLanguage(request.getId(), request.getLanguage());
    LocalDateTime now = LocalDateTime.now();

    String code = request.getCode();
    if (code == null) {
        try {//from   www . j a v a  2  s  .c o  m
            code = new CodeFormatter().parse(request.getTitle(), LocaleContextHolder.getLocale());
        } catch (ParseException e) {
            throw new ServiceException(e);
        }
    }
    if (!StringUtils.hasText(code)) {
        if (!page.getStatus().equals(Post.Status.DRAFT)) {
            throw new EmptyCodeException();
        }
    }
    if (!page.getStatus().equals(Post.Status.DRAFT)) {
        Post duplicate = postRepository.findOneByCodeAndLanguage(code, request.getLanguage());
        if (duplicate != null && !duplicate.equals(page)) {
            throw new DuplicateCodeException(code);
        }
    }

    if (!page.getStatus().equals(Post.Status.DRAFT)) {
        page.setCode(code);
        page.setDraftedCode(null);
    } else {
        page.setCode(null);
        page.setDraftedCode(code);
    }

    Page parent = (request.getParentId() != null)
            ? entityManager.getReference(Page.class, request.getParentId())
            : null;
    if (!(page.getParent() == null && parent == null)
            && !ObjectUtils.nullSafeEquals(page.getParent(), parent)) {
        pageRepository.shiftLftRgt(page.getLft(), page.getRgt());
        pageRepository.shiftRgt(page.getRgt());
        pageRepository.shiftLft(page.getRgt());

        int rgt = 0;
        if (parent == null) {
            rgt = pageRepository.findMaxRgt();
            rgt++;
        } else {
            rgt = parent.getRgt();
            pageRepository.unshiftRgt(rgt);
            pageRepository.unshiftLft(rgt);
        }
        page.setLft(rgt);
        page.setRgt(rgt + 1);
    }

    page.setParent(parent);

    Media cover = null;
    if (request.getCoverId() != null) {
        cover = entityManager.getReference(Media.class, request.getCoverId());
    }
    page.setCover(cover);
    page.setTitle(request.getTitle());
    page.setBody(request.getBody());

    //      User author = null;
    //      if (request.getAuthorId() != null) {
    //         author = entityManager.getReference(User.class, request.getAuthorId());
    //      }
    //      page.setAuthor(author);

    LocalDateTime date = request.getDate();
    if (Post.Status.PUBLISHED.equals(page.getStatus())) {
        if (date == null) {
            date = now.truncatedTo(ChronoUnit.HOURS);
        } else if (date.isAfter(now)) {
            page.setStatus(Post.Status.SCHEDULED);
        }
    }
    page.setDate(date);
    page.setLanguage(request.getLanguage());

    page.getCategories().clear();
    SortedSet<Category> categories = new TreeSet<>();
    for (long categoryId : request.getCategoryIds()) {
        categories.add(entityManager.getReference(Category.class, categoryId));
    }
    page.setCategories(categories);

    page.getTags().clear();
    Set<String> tagNames = StringUtils.commaDelimitedListToSet(request.getTags());
    if (!CollectionUtils.isEmpty(tagNames)) {
        for (String tagName : tagNames) {
            Tag tag = tagRepository.findOneForUpdateByNameAndLanguage(tagName, request.getLanguage());
            if (tag == null) {
                tag = new Tag();
                tag.setName(tagName);
                tag.setLanguage(request.getLanguage());
                page.setCreatedAt(now);
                page.setCreatedBy(authorizedUser.toString());
                page.setUpdatedAt(now);
                page.setUpdatedBy(authorizedUser.toString());
                tag = tagRepository.saveAndFlush(tag);
            }
            page.getTags().add(tag);
        }
    }

    page.getRelatedPosts().clear();
    Set<Post> relatedPosts = new HashSet<>();
    for (long relatedId : request.getRelatedPostIds()) {
        relatedPosts.add(entityManager.getReference(Post.class, relatedId));
    }
    page.setRelatedToPosts(relatedPosts);

    Seo seo = new Seo();
    seo.setTitle(request.getSeoTitle());
    seo.setDescription(request.getSeoDescription());
    seo.setKeywords(request.getSeoKeywords());
    page.setSeo(seo);

    List<Media> medias = new ArrayList<>();
    if (StringUtils.hasText(request.getBody())) {
        //         Blog blog = blogService.getBlogById(Blog.DEFAULT_ID);
        String mediaUrlPrefix = wallRideProperties.getMediaUrlPrefix();
        Pattern mediaUrlPattern = Pattern.compile(String.format("%s([0-9a-zA-Z\\-]+)", mediaUrlPrefix));
        Matcher mediaUrlMatcher = mediaUrlPattern.matcher(request.getBody());
        while (mediaUrlMatcher.find()) {
            Media media = mediaRepository.findOneById(mediaUrlMatcher.group(1));
            medias.add(media);
        }
    }
    page.setMedias(medias);

    page.setUpdatedAt(now);
    page.setUpdatedBy(authorizedUser.toString());

    SortedSet<CustomFieldValue> fieldValues = new TreeSet<>();
    Map<CustomField, CustomFieldValue> valueMap = new LinkedHashMap<>();
    for (CustomFieldValue value : page.getCustomFieldValues()) {
        valueMap.put(value.getCustomField(), value);
    }

    page.getCustomFieldValues().clear();
    if (!CollectionUtils.isEmpty(request.getCustomFieldValues())) {
        for (CustomFieldValueEditForm valueForm : request.getCustomFieldValues()) {
            CustomField customField = entityManager.getReference(CustomField.class,
                    valueForm.getCustomFieldId());
            CustomFieldValue value = valueMap.get(customField);
            if (value == null) {
                value = new CustomFieldValue();
            }
            value.setCustomField(customField);
            value.setPost(page);
            if (valueForm.getFieldType().equals(CustomField.FieldType.CHECKBOX)) {
                if (!ArrayUtils.isEmpty(valueForm.getTextValues())) {
                    value.setTextValue(String.join(",", valueForm.getTextValues()));
                } else {
                    value.setTextValue(null);
                }
            } else {
                value.setTextValue(valueForm.getTextValue());
            }
            value.setStringValue(valueForm.getStringValue());
            value.setNumberValue(valueForm.getNumberValue());
            value.setDateValue(valueForm.getDateValue());
            value.setDatetimeValue(valueForm.getDatetimeValue());
            if (!value.isEmpty()) {
                fieldValues.add(value);
            }
        }
    }
    page.setCustomFieldValues(fieldValues);

    return pageRepository.save(page);
}

From source file:com.devnexus.ting.core.service.impl.BusinessServiceImpl.java

@Transactional
@Override/*from w w  w.ja v a  2s.  com*/
public Set<PresentationTag> processPresentationTags(String tagsAsText) {

    final Set<PresentationTag> presentationTagsToSave = new HashSet<>();

    if (!tagsAsText.trim().isEmpty()) {
        Set<String> tags = StringUtils.commaDelimitedListToSet(tagsAsText);

        for (String tag : tags) {
            if (tag != null) {

                final String massagedTagName = tag.trim().toLowerCase(Locale.ENGLISH);
                PresentationTag tagFromDb = this.getPresentationTag(massagedTagName);

                if (tagFromDb == null) {
                    PresentationTag presentationTag = new PresentationTag();
                    presentationTag.setName(massagedTagName);
                    tagFromDb = this.savePresentationTag(presentationTag);
                }

                presentationTagsToSave.add(tagFromDb);
            }
        }
    }

    return presentationTagsToSave;
}

From source file:org.kuali.student.myplan.course.controller.CourseSearchController.java

private void loadScheduledTerms(List<CourseSearchItem> courses, Set<String> subjectSet, CourseSearchForm form) {
    try {/*from   ww w  . jav  a  2  s  . c om*/

        logger.info(
                "Start of method loadScheduledTerms of CourseSearchController:" + System.currentTimeMillis());
        AcademicCalendarService atpService = getAcademicCalendarService();

        List<TermInfo> terms = atpService.searchForTerms(
                QueryByCriteria.Builder.fromPredicates(equalIgnoreCase("query", PlanConstants.PUBLISHED)),
                CourseSearchConstants.CONTEXT_INFO);

        // For each term load all course offerings by subjectArea
        for (TermInfo term : terms) {
            Set<String> courseOfferingByTermSet = new HashSet<String>();
            Map<String, ActivitySearchItem> coursesToActivitySearchItem = new LinkedHashMap<String, ActivitySearchItem>();

            /*If the search term is ANY then we do regular search for course offeringIds otherwise we do a section search based on meeting times and days passed in the form.*/
            if (CourseSearchConstants.SEARCH_TERM_ANY_ITEM.equals(form.getSearchTerm())
                    || !term.getId().equals(form.getSearchTerm())) {
                for (String subjectArea : subjectSet) {
                    List<String> offeringIds = getCourseOfferingService()
                            .getCourseOfferingIdsByTermAndSubjectArea(term.getId(), subjectArea,
                                    CourseSearchConstants.CONTEXT_INFO);
                    courseOfferingByTermSet.addAll(offeringIds);
                }
            } else {

                AtpHelper.YearTerm yt = AtpHelper.atpToYearTerm(form.getSearchTerm());
                for (String subjectArea : subjectSet) {

                    SearchRequestInfo request = new SearchRequestInfo(
                            CourseSearchConstants.COURSE_OFFERING_MEETING_TIME_SEARCH);
                    request.addParam(CourseSearchConstants.COURSE_OFFERING_SEARCH_DAYS_PARAM,
                            org.apache.commons.lang.StringUtils.join(form.getSelectedDays(), ":"));
                    request.addParam(CourseSearchConstants.COURSE_OFFERING_SEARCH_START_TIME_PARAM,
                            form.getStartTime());
                    request.addParam(CourseSearchConstants.COURSE_OFFERING_SEARCH_END_TIME_PARAM,
                            form.getEndTime());
                    request.addParam(CourseSearchConstants.COURSE_OFFERING_SEARCH_TERM_PARAM, yt.getTermAsID());
                    request.addParam(CourseSearchConstants.COURSE_OFFERING_SEARCH_YEAR_PARAM,
                            yt.getYearAsString());
                    request.addParam(CourseSearchConstants.COURSE_OFFERING_SEARCH_SUBJECT_PARAM,
                            subjectArea.trim());

                    SearchResultInfo result = null;
                    try {
                        result = getCourseOfferingSearchService().search(request,
                                CourseSearchConstants.CONTEXT_INFO);
                    } catch (Exception e) {
                        logger.error("Could not retrieve course offering by meeting times for subject: "
                                + subjectArea + " for term: " + form.getSearchTerm(), e);
                    }

                    for (SearchResultRow row : result.getRows()) {
                        String id = SearchHelper.getCellValue(row, "section.id");
                        String meetingTimes = SearchHelper.getCellValue(row, "section.meeting.days.and.times");
                        String subject = SearchHelper.getCellValue(row, "section.curriculum.abbreviation");
                        String number = SearchHelper.getCellValue(row, "section.course.number");
                        boolean primary = Boolean.valueOf(SearchHelper.getCellValue(row, "section.primary"));
                        int secondaryCount = Integer
                                .parseInt(SearchHelper.getCellValue(row, "section.secondary.count"));
                        String primaryId = SearchHelper.getCellValue(row, "section.primary.id");
                        String secondaryActivityTypes = SearchHelper.getCellValue(row,
                                "section.secondary.types");
                        String activityType = SearchHelper.getCellValue(row, "section.type");
                        String code = getCourseHelper().joinStringsByDelimiter(' ', subject.trim(),
                                number.trim());
                        ActivitySearchItem activitySearchItem = coursesToActivitySearchItem.get(code) != null
                                ? coursesToActivitySearchItem.get(code)
                                : new ActivitySearchItem();
                        if (primary) {
                            courseOfferingByTermSet.add(id);
                            activitySearchItem.getPrimaryToSecondaries().put(id,
                                    secondaryCount > 0 ? new LinkedHashSet<String>() : null);
                            if (secondaryCount > 0) {
                                activitySearchItem.getPrimaryToSecondaryTypes().put(id,
                                        StringUtils.commaDelimitedListToSet(secondaryActivityTypes));
                            }
                        } else {
                            if (activitySearchItem.getPrimaryToSecondaries().get(primaryId) == null) {
                                continue;
                            } else {
                                activitySearchItem.getPrimaryToSecondaries().get(primaryId).add(id);
                                Set<String> secondaryTypes = activitySearchItem
                                        .getPrimaryToSecondaryTypesAvailable().get(primaryId);
                                if (CollectionUtils.isEmpty(secondaryTypes)) {
                                    secondaryTypes = new HashSet<String>();
                                }
                                secondaryTypes.add(activityType);
                                activitySearchItem.getPrimaryToSecondaryTypesAvailable().put(primaryId,
                                        secondaryTypes);
                            }
                        }
                        activitySearchItem.getMeetingTimes().add(meetingTimes);
                        coursesToActivitySearchItem.put(code, activitySearchItem);
                    }

                }
            }

            /*Filtering out the activities from courseOfferingByTermSet which do not have a complete course activity set.*/
            for (String key : coursesToActivitySearchItem.keySet()) {
                ActivitySearchItem activitySearchItem = coursesToActivitySearchItem.get(key);
                if (!CollectionUtils.isEmpty(activitySearchItem.getPrimaryToSecondaryTypes())) {
                    for (String primaryId : activitySearchItem.getPrimaryToSecondaryTypes().keySet()) {
                        if (activitySearchItem.getPrimaryToSecondaryTypesAvailable().get(primaryId) == null) {
                            courseOfferingByTermSet.remove(primaryId);
                        } else if (activitySearchItem.getPrimaryToSecondaryTypesAvailable().get(primaryId)
                                .size() != activitySearchItem.getPrimaryToSecondaryTypes().get(primaryId)
                                        .size()) {
                            courseOfferingByTermSet.remove(primaryId);
                        }
                    }
                }
            }

            // Check to see if the course is offered
            for (CourseSearchItem item : courses) {
                if (getCourseHelper().isCourseInOfferingIds(item.getSubject(), item.getNumber(),
                        courseOfferingByTermSet)) {
                    item.addScheduledTerm(term.getName());
                    if (!CourseSearchConstants.SEARCH_TERM_ANY_ITEM.equals(form.getSearchTerm())
                            && term.getId().equals(form.getSearchTerm())) {
                        String code = getCourseHelper().joinStringsByDelimiter(' ', item.getSubject().trim(),
                                item.getNumber().trim());
                        ActivitySearchItem activitySearchItem = coursesToActivitySearchItem.get(code);
                        if (activitySearchItem != null) {
                            if (!CollectionUtils.isEmpty(activitySearchItem.getPrimaryToSecondaries())) {
                                for (String primaryId : activitySearchItem.getPrimaryToSecondaries().keySet()) {
                                    if (!item.isSortToTop()) {
                                        item.setSortToTop(activitySearchItem.getPrimaryToSecondaries()
                                                .get(primaryId) == null
                                                || activitySearchItem.getPrimaryToSecondaries().get(primaryId)
                                                        .size() > 0);
                                    } else {
                                        /*Since we only need to check if there is atLeast one match of primary and secondary for this particular course*/
                                        break;
                                    }
                                }
                                item.getMeetingDaysAndTimes().addAll(activitySearchItem.getMeetingTimes());
                                item.setMeetingDayFacetKeys(getMeetingDataByTypeWithDelimiters(
                                        item.getMeetingDaysAndTimes(), MEETING_DAYS));
                                item.setMeetingTimeFacetKeys(getMeetingDataByTypeWithDelimiters(
                                        item.getMeetingDaysAndTimes(), MEETING_TIMES));
                                item.setMeetingDayTimeFacetKeys(getMeetingDataByTypeWithDelimiters(
                                        item.getMeetingDaysAndTimes(), MEETING_DAY_TIMES));
                            }
                        }
                    }
                }
            }

        }
        logger.info("End of method loadScheduledTerms of CourseSearchController:" + System.currentTimeMillis());
    } catch (Exception e) {
        // TODO: Eating this error sucks
        logger.error("Web service call failed.", e);
    }
}

From source file:it.smartcommunitylab.aac.controller.ResourceAccessController.java

/**
 * Check the access to the specified resource using the client app token header
 * @param token/*from   w ww  .  j  av a2s  . c  om*/
 * @param resourceUri
 * @param request
 * @return
 */
@ApiOperation(value = "Check scope access for token")
@RequestMapping(method = RequestMethod.GET, value = "/resources/access")
@Deprecated
public @ResponseBody Boolean canAccessResource(@RequestParam String scope, HttpServletRequest request) {
    try {
        String parsedToken = it.smartcommunitylab.aac.common.Utils.parseHeaderToken(request);
        OAuth2Authentication auth = resourceServerTokenServices.loadAuthentication(parsedToken);
        Collection<String> actualScope = auth.getOAuth2Request().getScope();
        Collection<String> scopeSet = StringUtils.commaDelimitedListToSet(scope);
        if (actualScope != null && !actualScope.isEmpty() && actualScope.containsAll(scopeSet)) {
            return true;
        }
    } catch (AuthenticationException e) {
        logger.error("Error validating token: " + e.getMessage());
    }
    return false;
}

From source file:it.smartcommunitylab.aac.manager.ResourceManager.java

/**
 * @param apiKey// www. j a va2 s. co  m
 * @return all the roles associated to the fixed service resources
 */
public Set<String> getResourceRoles(String apiKey) {
    ServiceDescriptor sd = serviceRepository.findByAPIKey(apiKey);

    if (sd != null) {
        Set<String> result = new HashSet<>();
        List<Resource> resources = resourceRepository.findByService(sd);
        resources.forEach(r -> {
            if (r.getResourceParameter() == null && StringUtils.hasText(r.getRoles())) {
                result.addAll(StringUtils.commaDelimitedListToSet(r.getRoles()).stream()
                        .map(rs -> Role.parse(rs).getRole()).collect(Collectors.toSet()));
            }
        });
        return result;
    }
    return Collections.emptySet();
}