public Results getPossibleValues(final ApplicationUser user, final String jqlClauseName, final String valuePrefix, final int maxNumResults) { final ApplicationUser searcher = user; final Set<String> suggestions = new TreeSet<String>(); final Collection<String> fieldIds = getSearchHandlerManager().getFieldIds(searcher, jqlClauseName); for (String fieldId : fieldIds) { if(fieldId.equals(SystemSearchConstants.forLabels().getFieldId())) { suggestions.addAll(labelManager.getSuggestedLabels(searcher, null, valuePrefix)); } else { suggestions.addAll(labelManager.getSuggestedLabels(searcher, null, CustomFieldUtils.getCustomFieldId(fieldId), valuePrefix)); } } final List<Result> results = Lists.newArrayListWithCapacity(suggestions.size()); for (String suggestion : suggestions) { if(results.size() == maxNumResults) { break; } results.add(new Result(suggestion)); } return new Results(results); }
@Override public LabelSuggestionResult getSuggestedLabels(final ApplicationUser user, final Long issueId, final String token) { final ErrorCollection errors = validateForSuggestion(user, token); if(errors.hasAnyErrors()) { return new LabelSuggestionResult(Collections.<String>emptySet(), errors); } return new LabelSuggestionResult(labelManager.getSuggestedLabels(user, issueId, token), new SimpleErrorCollection()); }
@Override public LabelSuggestionResult getSuggestedLabels(final ApplicationUser user, final Long issueId, final Long customFieldId, final String token) { notNull("customFieldId", customFieldId); final ErrorCollection errors = validateForSuggestion(user, token); final CustomField field = customFieldManager.getCustomFieldObject(customFieldId); if (field == null) { final I18nHelper i18n = beanFactory.getInstance(user); errors.addErrorMessage(i18n.getText("label.service.error.custom.field.doesnt.exist", customFieldId)); } if(errors.hasAnyErrors()) { return new LabelSuggestionResult(Collections.<String>emptySet(), errors); } return new LabelSuggestionResult(labelManager.getSuggestedLabels(user, issueId, customFieldId, token), new SimpleErrorCollection()); }