public static ComplexIssueInputFieldValue with(String key, Object value) { return new ComplexIssueInputFieldValue(ImmutableMap.<String, Object>of(key, value)); }
public static ComplexIssueInputFieldValue with(String key, Object value) { return new ComplexIssueInputFieldValue(ImmutableMap.of(key, value)); }
private ComplexIssueInputFieldValue transformTimeTracking(TimeTracking timeTracking) { final Map<String, Object> fields = Maps.newHashMap(); final Integer originalEstimateMinutes = timeTracking.getOriginalEstimateMinutes(); if (originalEstimateMinutes != null) { fields.put("originalEstimate", originalEstimateMinutes + "m"); } final Integer remainingEstimateMinutes = timeTracking.getRemainingEstimateMinutes(); if (remainingEstimateMinutes != null) { fields.put("remainingEstimate", remainingEstimateMinutes + "m"); } // Don't use time spent as JIRA says: "Setting the Time Spent directly is not supported." return new ComplexIssueInputFieldValue(fields); }
private ComplexIssueInputFieldValue transformTimeTracking(TimeTracking timeTracking) { final Map<String, Object> fields = Maps.newHashMap(); final Integer originalEstimateMinutes = timeTracking.getOriginalEstimateMinutes(); if (originalEstimateMinutes != null) { fields.put("originalEstimate", originalEstimateMinutes + "m"); } final Integer remainingEstimateMinutes = timeTracking.getRemainingEstimateMinutes(); if (remainingEstimateMinutes != null) { fields.put("remainingEstimate", remainingEstimateMinutes + "m"); } // Don't use time spent as JIRA says: "Setting the Time Spent directly is not supported." return new ComplexIssueInputFieldValue(fields); }
public Object apply(Object rawValue) { if (rawValue == null) { return null; } else if (rawValue instanceof String || rawValue instanceof Number || rawValue instanceof ComplexIssueInputFieldValue) { return rawValue; } else if (rawValue instanceof BasicProject) { return new ComplexIssueInputFieldValue(ImmutableMap.<String, Object>of("key", ((BasicProject) rawValue).getKey())); } else if (rawValue instanceof CustomFieldOption) { return transformCustomFieldOption((CustomFieldOption) rawValue); } else if (rawValue instanceof TimeTracking) { return transformTimeTracking((TimeTracking) rawValue); } else if (rawValue instanceof IdentifiableEntity) { final IdentifiableEntity identifiableEntity = (IdentifiableEntity) rawValue; return new ComplexIssueInputFieldValue(ImmutableMap.<String, Object>of("id", identifiableEntity.getId().toString())); } else if (rawValue instanceof NamedEntity) { final NamedEntity namedEntity = (NamedEntity) rawValue; return new ComplexIssueInputFieldValue(ImmutableMap.<String, Object>of("name", namedEntity.getName())); } return CANNOT_HANDLE; }
public Object apply(Object rawValue) { if (rawValue == null) { return null; } else if (rawValue instanceof String || rawValue instanceof Number || rawValue instanceof ComplexIssueInputFieldValue) { return rawValue; } else if (rawValue instanceof BasicProject) { return new ComplexIssueInputFieldValue(ImmutableMap.<String, Object>of("key", ((BasicProject) rawValue).getKey())); } else if (rawValue instanceof CustomFieldOption) { return transformCustomFieldOption((CustomFieldOption) rawValue); } else if (rawValue instanceof TimeTracking) { return transformTimeTracking((TimeTracking) rawValue); } else if (rawValue instanceof IdentifiableEntity) { final IdentifiableEntity identifiableEntity = (IdentifiableEntity) rawValue; return new ComplexIssueInputFieldValue(ImmutableMap.<String, Object>of("id", identifiableEntity.getId().toString())); } else if (rawValue instanceof NamedEntity) { final NamedEntity namedEntity = (NamedEntity) rawValue; return new ComplexIssueInputFieldValue(ImmutableMap.<String, Object>of("name", namedEntity.getName())); } return CANNOT_HANDLE; }
@Override public Object mapToFieldValue(String fieldId, FieldSchema schema, String attributeValue) { if (!Strings.isNullOrEmpty(attributeValue)) { final String[] split = attributeValue.split(","); // split by "," if (split != null && split.length >= 1) { // we have at least one value final String optionKey = getOptionKey(fieldId, "value"); final Map<String, Object> parentValueMap = new HashMap<>(); parentValueMap.put(optionKey, split[0]); // set first value final ComplexIssueInputFieldValue parentValue = new ComplexIssueInputFieldValue(parentValueMap); if (split.length >= 2) { // if we have a 2nd value, set it as child of value 1 parentValue.getValuesMap().put("child", ComplexIssueInputFieldValue.with(optionKey, split[1])); } return parentValue; } } return null; } }
@Override public Object mapToFieldValue(String fieldId, FieldSchema schema, String attributeValue) { if (!Strings.isNullOrEmpty(attributeValue)) { final String[] split = attributeValue.split(","); // split by "," if (split != null && split.length >= 1) { // we have at least one value final String optionKey = getOptionKey(fieldId, "value"); final Map<String, Object> parentValueMap = new HashMap<>(); parentValueMap.put(optionKey, split[0]); // set first value final ComplexIssueInputFieldValue parentValue = new ComplexIssueInputFieldValue(parentValueMap); if (split.length >= 2) { // if we have a 2nd value, set it as child of value 1 parentValue.getValuesMap().put("child", ComplexIssueInputFieldValue.with(optionKey, split[1])); } return parentValue; } } return null; } }
private ComplexIssueInputFieldValue transformCustomFieldOption(CustomFieldOption cfo) { if (cfo.getChild() != null) { return new ComplexIssueInputFieldValue(ImmutableMap.<String, Object>of( "id", cfo.getId().toString(), "value", cfo.getValue(), "child", this.apply(cfo.getChild()))); } else { return new ComplexIssueInputFieldValue(ImmutableMap.<String, Object>of("id", cfo.getId().toString(), "value", cfo .getValue())); } }
private ComplexIssueInputFieldValue transformCustomFieldOption(CustomFieldOption cfo) { if (cfo.getChild() != null) { return new ComplexIssueInputFieldValue(ImmutableMap.of( "id", cfo.getId().toString(), "value", cfo.getValue(), "child", this.apply(cfo.getChild()))); } else { return new ComplexIssueInputFieldValue(ImmutableMap.<String, Object>of("id", cfo.getId().toString(), "value", cfo .getValue())); } }
IssueInputBuilder issueBuilder = new IssueInputBuilder("Project1", 5L);//5 is the id for subtask type. You can know the id of subtask type by querying this REST api /rest/api/2/issue/createmeta issueBuilder.setDescription(">> Test Description"); issueBuilder.setSummary("Test summary"); issueBuilder.setProjectKey("Project1"); Map<String, Object> parent = new HashMap<String, Object>(); parent.put("key", "SOMEISSUE-234"); FieldInput parentField = new FieldInput("parent", new ComplexIssueInputFieldValue(parent)); Map<String, Object> customField = new HashMap<String, Object>(); customField.put("value", "someValue");//This is some custom field value on the subtask customField.put("id", "12345");//This is the id of the custom field. You can know this by calling REST GET for a manually created sub-task issueBuilder.setFieldInput(parentField); issueBuilder.setFieldValue("customfield_12345", new ComplexIssueInputFieldValue(customField));//here again you have to query an existing subtask to know the "customfield_*" value com.atlassian.jira.rest.client.domain.input.IssueInput issueInput = issueBuilder.build(); BasicIssue bIssue = restClient.getIssueClient().createIssue(issueInput, pm); System.out.println(">>> " + bIssue.getKey());