I am a beginner with Jira custom fields
Created a demo plugin on the local server,
added a custom field module in that to store a BigDecimal
Now I want to add a list of data in the custom field
The class I have implemented
package com.intel.cfdemo.jira.customfields;
import com.atlassian.jira.issue.customfields.impl.AbstractSingleFieldType;
import com.atlassian.jira.issue.customfields.persistence.PersistenceFieldType;
import com.atlassian.plugin.servlet.util.DefaultPathMapper;
import com.atlassian.plugin.spring.scanner.annotation.component.Scanned;
import com.atlassian.plugin.spring.scanner.annotation.imports.ComponentImport;
import com.atlassian.plugin.spring.scanner.annotation.imports.JiraImport;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.atlassian.jira.issue.customfields.impl.TextCFType;
import com.atlassian.jira.issue.customfields.manager.GenericConfigManager;
import com.atlassian.jira.issue.customfields.persistence.CustomFieldValuePersister;
import com.atlassian.jira.issue.customfields.impl.FieldValidationException;
import com.atlassian.jira.issue.Issue;
import com.atlassian.jira.issue.fields.CustomField;
import com.atlassian.jira.issue.fields.config.FieldConfig;
import com.atlassian.jira.issue.fields.layout.field.FieldLayoutItem;
import javax.inject.Inject;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@Scanned
public class MyCustomField extends AbstractSingleFieldType<BigDecimal> {
@Inject
public MyCustomField(
@JiraImport CustomFieldValuePersister customFieldValuePersister,
@JiraImport GenericConfigManager genericConfigManager
) {
super(customFieldValuePersister, genericConfigManager);
}
@Override
public String getStringFromSingularObject(final BigDecimal singularObject) {
System.out.println("getStringFromSingularObject 1");
System.out.println(singularObject);
if (singularObject == null)
return null;
else
return singularObject.toString();
}
@Override
public BigDecimal getSingularObjectFromString(final String string) throws FieldValidationException {
System.out.println("getSingularObjectFromString 4");
System.out.println(string);
if (string == null)
return null;
try {
BigDecimal decimal = new BigDecimal(string);
if (decimal.scale() > 2) {
throw new FieldValidationException(
"Maximum of 2 decimal places are allowed.");
}
return decimal.setScale(2);
} catch (NumberFormatException ex) {
throw new FieldValidationException("Not a valid number.");
}
}
@Override
protected PersistenceFieldType getDatabaseType() {
System.out.println("getDatabaseType 2");
System.out.println(PersistenceFieldType.TYPE_LIMITED_TEXT);
return PersistenceFieldType.TYPE_LIMITED_TEXT;
}
@Override
protected BigDecimal getObjectFromDbValue(final Object databaseValue)
throws FieldValidationException {
System.out.println("getObjectFromDbValue 3");
System.out.println(databaseValue);
return getSingularObjectFromString((String) databaseValue);
}
@Override
protected Object getDbValueFromObject(final BigDecimal customFieldObject) {
System.out.println("getDbValueFromObject 5");
System.out.println(customFieldObject);
return getStringFromSingularObject(customFieldObject);
}
}
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.