PageRenderTime 42ms CodeModel.GetById 18ms RepoModel.GetById 1ms app.codeStats 0ms

/src/main/java/com/example/plugins/tutorial/jira/customfields/MoneyCustomField.java

https://bitbucket.org/atlassian/tutorial-jira-custom-field
Java | 70 lines | 59 code | 10 blank | 1 comment | 5 complexity | 805be4ca901579ee5b81b49126e5693d MD5 | raw file
Possible License(s): BSD-3-Clause
  1. package com.example.plugins.tutorial.jira.customfields;
  2. import com.atlassian.jira.issue.customfields.impl.AbstractSingleFieldType;
  3. import com.atlassian.jira.issue.customfields.impl.FieldValidationException;
  4. import com.atlassian.jira.issue.customfields.manager.GenericConfigManager;
  5. import com.atlassian.jira.issue.customfields.persistence.CustomFieldValuePersister;
  6. import com.atlassian.jira.issue.customfields.persistence.PersistenceFieldType;
  7. import com.atlassian.jira.util.NotNull;
  8. import java.math.BigDecimal;
  9. public class MoneyCustomField extends AbstractSingleFieldType<BigDecimal>
  10. {
  11. public MoneyCustomField(CustomFieldValuePersister customFieldValuePersister, GenericConfigManager genericConfigManager) {
  12. super(customFieldValuePersister, genericConfigManager);
  13. }
  14. @Override
  15. public String getStringFromSingularObject(final BigDecimal singularObject)
  16. {
  17. if (singularObject == null)
  18. return null;
  19. else
  20. return singularObject.toString();
  21. }
  22. @Override
  23. public BigDecimal getSingularObjectFromString(final String string)
  24. throws FieldValidationException
  25. {
  26. if (string == null)
  27. return null;
  28. try
  29. {
  30. final BigDecimal decimal = new BigDecimal(string);
  31. // Check that we don't have too many decimal places
  32. if (decimal.scale() > 2)
  33. {
  34. throw new FieldValidationException(
  35. "Maximum of 2 decimal places are allowed.");
  36. }
  37. return decimal.setScale(2);
  38. }
  39. catch (NumberFormatException ex)
  40. {
  41. throw new FieldValidationException("Not a valid number.");
  42. }
  43. }
  44. @Override
  45. protected PersistenceFieldType getDatabaseType()
  46. {
  47. return PersistenceFieldType.TYPE_LIMITED_TEXT;
  48. }
  49. @Override
  50. protected BigDecimal getObjectFromDbValue(@NotNull final Object databaseValue)
  51. throws FieldValidationException
  52. {
  53. return getSingularObjectFromString((String) databaseValue);
  54. }
  55. @Override
  56. protected Object getDbValueFromObject(final BigDecimal customFieldObject)
  57. {
  58. return getStringFromSingularObject(customFieldObject);
  59. }
  60. }