private CustomFieldParams getValueForId(final CustomField customField, final Long id) { return new CustomFieldParamsImpl(customField, Collections.singletonList(id.toString())); }
public void put(final String key, final Collection<String> value) { addValue(key, value); }
public CustomFieldParamsImpl(final CustomField customField, final Object paramsObject) { if (paramsObject instanceof CustomFieldParams) { final CustomFieldParams params = (CustomFieldParams) paramsObject; deepCopy(params.getKeysAndValues()); } else if ((paramsObject instanceof Map) && !(paramsObject instanceof GenericEntity)) { final Map params = (Map) paramsObject; deepCopy(params); } else if (paramsObject instanceof Collection) { parameterMap.put(null, new ArrayList((Collection) paramsObject)); } else if (paramsObject != null) { final ArrayList list = new ArrayList(); //This is not generic because we write to that map //not only Strings... list.add(paramsObject); parameterMap.put(null, list); } else { log.debug("CustomFieldParamsImpl received a null object in constructor"); } this.customField = customField; }
final CustomFieldParamsImpl customFieldParams = new CustomFieldParamsImpl(this); for (final Map.Entry<String, String[]> entry : params.entrySet()) customFieldParams.addValue(CustomFieldUtils.getSearchParamSuffix(key), Arrays.asList(p)); break; //exit for loop
public Collection getValuesForNullKey() { return getValuesForKey(null); }
public void transformObjectsToStrings() { final Transformer toStringTransformer = new Transformer() { public Object transform(final Object input) { return getCustomField().getCustomFieldType().getStringFromSingularObject(input); } }; transformMultiMap(toStringTransformer, parameterMap); }
public Object transform(final Object input) { try { return getCustomField().getCustomFieldType().getSingularObjectFromString((String) input); } catch (final FieldValidationException e) { log.info("Failed to convert from string to singular object", e); return null; } } };
public Object getFirstValueForNullKey() { return getFirstValueForKey(null); }
public boolean contains(final String key, final String value) { final Collection c = getValuesForKey(key); if ((c != null) && !c.isEmpty()) { return c.contains(value); } else { return false; } }
public void transform(final Transformer transformer) { transformMultiMap(transformer, parameterMap); }
public String getQueryString() { final String customFieldId = getCustomField().getId(); final StringBuilder sb = new StringBuilder(); for (final Map.Entry<String, Collection<String>> entry : parameterMap.entrySet()) { final String key = entry.getKey(); final Collection<String> values = entry.getValue(); if (values != null) { for (final String value : values) { if (sb.length() > 0) { sb.append("&"); } if (key != null) { sb.append(customFieldId).append(":").append( key); } else { sb.append(customFieldId); } sb.append("=").append(value); } } } return sb.toString(); }
private CustomFieldParams getCustomFieldParamsFromIssue(Issue issue) { //JRA-16915: The CustomFieldParams returned should NEVER be null, since this may break calls to validate() methods //later on with a NPE. This can cause problems for example, when deleting values in a workflow transition //via SOAP, if a customfield value for an issue is null. Object valueFromIssue = getCustomFieldType().getValueFromIssue(this, issue); if (valueFromIssue != null) { CustomFieldParams paramsFromIssue = new CustomFieldParamsImpl(this, valueFromIssue); paramsFromIssue.transformObjectsToStrings(); return paramsFromIssue; } else { return new CustomFieldParamsImpl(this); } }
public Object getFirstValueForKey(@Nullable final String key) { final Collection c = getValuesForKey(key); if ((c != null) && !c.isEmpty()) { return c.iterator().next(); } else { return null; } }
public void transformStringsToObjects() { final Transformer toObjectTransformer = new Transformer() { public Object transform(final Object input) { try { return getCustomField().getCustomFieldType().getSingularObjectFromString((String) input); } catch (final FieldValidationException e) { log.info("Failed to convert from string to singular object", e); return null; } } }; transformMultiMap(toObjectTransformer, parameterMap); }
public Object transform(final Object input) { return getCustomField().getCustomFieldType().getStringFromSingularObject(input); } };
@Override protected CustomFieldParams getParamsFromSearchRequest(final ApplicationUser user, Query query, final SearchContext searchContext) { if (query == null) { return null; } final Set<String> valuesAsStrings = indexedInputHelper.getAllNavigatorValuesForMatchingClauses(user, clauseNames, query); return new CustomFieldParamsImpl(getCustomField(), valuesAsStrings); }
@Override protected CustomFieldParams getParamsFromSearchRequest(final ApplicationUser user, final Query query, final SearchContext searchContext) { final Collection<String> groupStrings = getGroupsFromQuery(user, query); if (groupStrings == null || groupStrings.isEmpty()) { return null; } final Collection<String> validGroups = getValidGroups(groupStrings); if (validGroups == null || validGroups.isEmpty()) { return null; } return new CustomFieldParamsImpl(getCustomField(), validGroups); }
@Nullable public Map<String, Option> getDefaultValue(FieldConfig fieldConfig) { final Object o = genericConfigManager.retrieve(DEFAULT_VALUE_TYPE, fieldConfig.getId().toString()); if (o != null) { final CustomFieldParams params = new CustomFieldParamsImpl(fieldConfig.getCustomField(), o); return getOptionMapFromCustomFieldParams(params); } else { return null; } }
@Override public void populateDefaults(Map<String, Object> customFieldValuesHolder, Issue issue) { FieldConfig config = getRelevantConfig(issue); if (config != null) { Object defaultValues = getCustomFieldType().getDefaultValue(config); CustomFieldParams paramsFromIssue; if (defaultValues != null) { paramsFromIssue = new CustomFieldParamsImpl(this, defaultValues); paramsFromIssue.transformObjectsToStrings(); customFieldValuesHolder.put(getId(), paramsFromIssue); customFieldValuesHolder.put(getId() + ":objects", new CustomFieldParamsImpl(this, defaultValues)); } } else { log.info("No relevant config found for " + this + " for the issue " + issue); } }
return new CustomFieldParamsImpl(customField, newValues);