public static Collection<CustomFieldOptionJsonBean> shortBeans(final Collection<Option> allowedValues, final JiraBaseUrls baseUrls) { Collection<CustomFieldOptionJsonBean> result = Lists.newArrayListWithCapacity(allowedValues.size()); for (Option from : allowedValues) { result.add(CustomFieldOptionJsonBean.shortBean(from, baseUrls)); } return result; } }
@Override public FieldJsonRepresentation getJsonFromIssue(CustomField field, Issue issue, boolean renderedVersionRequested, @Nullable FieldLayoutItem fieldLayoutItem) { Map<String, Option> options = getValueFromIssue(field, issue); if (options == null) { return new FieldJsonRepresentation(new JsonData(null)); } Option parent = options.get(PARENT_KEY); Option child = options.get(CHILD_KEY); return new FieldJsonRepresentation(new JsonData(CustomFieldOptionJsonBean.shortBean(parent, child, jiraBaseUrls))); }
@Override public JsonData getJsonDefaultValue(IssueContext issueCtx, CustomField field) { FieldConfig config = field.getRelevantConfig(issueCtx); Option defaultValue = (Option) field.getCustomFieldType().getDefaultValue(config); return defaultValue == null ? null : new JsonData(CustomFieldOptionJsonBean.shortBean(defaultValue, jiraBaseUrls)); } }
/** * Method for building a cascading option with a specific child. * @return null if the input is null */ public static CustomFieldOptionJsonBean shortBean(final Option parent, final Option child, final JiraBaseUrls urls) { if (parent == null) { return null; } final CustomFieldOptionJsonBean bean = new CustomFieldOptionJsonBean(); bean.self = urls.restApi2BaseUrl() + "customFieldOption/" + JiraUrlCodec.encode(parent.getOptionId().toString()); bean.value = parent.getValue(); bean.id = String.valueOf(parent.getOptionId()); bean.child = shortBean(child, urls); return bean; }
@Override public FieldJsonRepresentation getJsonFromIssue(CustomField field, Issue issue, boolean renderedVersionRequested, @Nullable FieldLayoutItem fieldLayoutItem) { Option valueFromIssue = getValueFromIssue(field, issue); if (valueFromIssue == null) { return new FieldJsonRepresentation(new JsonData(null)); } return new FieldJsonRepresentation(new JsonData(CustomFieldOptionJsonBean.shortBean(valueFromIssue, jiraBaseUrls))); }
@Override public JsonData getJsonDefaultValue(IssueContext issueCtx, CustomField field) { FieldConfig fieldConfig = field.getRelevantConfig(issueCtx); final Object o = genericConfigManager.retrieve(DEFAULT_VALUE_TYPE, fieldConfig.getId().toString()); if (o != null) { final CustomFieldParams params = new CustomFieldParamsImpl(fieldConfig.getCustomField(), o); Map<String, Option> options = getOptionMapFromCustomFieldParams(params); if (options == null) { return new JsonData(null); } Option parent = options.get(PARENT_KEY); Option child = options.get(CHILD_KEY); return new JsonData(CustomFieldOptionJsonBean.shortBean(parent, child, jiraBaseUrls)); } else { return null; } } }