Пример #1
0
  @Override
  public List<ApplicationModel> searchApplications(
      String criteria, User user, ApplicationType deviceType) {
    List<Application> applications = new ArrayList<Application>();
    if (criteria != null && !criteria.isEmpty()) {
      criteria = criteria.toLowerCase();
      List<Application> userApplications =
          userService.getApplicationsForUser(
              user,
              deviceType,
              AppState.ORGANIZATION_PUBLISH,
              AppState.GROUP_PUBLISH,
              AppState.ORG_PUBLISH_REQUEST);
      for (Application application : userApplications) {
        if ((application.getName().toLowerCase().contains(criteria)
                || application.getDescription().toLowerCase().contains(criteria))
            && !applications.contains(application)) {
          applications.add(application);
        }
      }
      ComparatorChain chain = new ComparatorChain();
      chain.addComparator(new ApplicationNameComparator());
      chain.addComparator(new ApplicationDescriptionComparator());

      Collections.sort(applications, chain);
    }

    return applicationService.createApplicationModels(applications);
  }