PageRenderTime 54ms CodeModel.GetById 29ms RepoModel.GetById 1ms app.codeStats 0ms

/src/main/java/com/atlassian/jconnect/jira/customfields/LocationCFType.java

https://bitbucket.org/atlassian/jiraconnect-jiraplugin/
Java | 65 lines | 50 code | 12 blank | 3 comment | 6 complexity | 630daa531cd047e2a5a58d939cf5e3b8 MD5 | raw file
  1. package com.atlassian.jconnect.jira.customfields;
  2. import com.atlassian.jira.issue.Issue;
  3. import com.atlassian.jira.issue.customfields.impl.AbstractSingleFieldType;
  4. import com.atlassian.jira.issue.customfields.impl.FieldValidationException;
  5. import com.atlassian.jira.issue.customfields.manager.GenericConfigManager;
  6. import com.atlassian.jira.issue.customfields.persistence.CustomFieldValuePersister;
  7. import com.atlassian.jira.issue.customfields.persistence.PersistenceFieldType;
  8. import com.atlassian.jira.issue.fields.CustomField;
  9. import com.atlassian.jira.issue.fields.layout.field.FieldLayoutItem;
  10. import java.util.Map;
  11. /**
  12. *
  13. */
  14. public class LocationCFType extends AbstractSingleFieldType {
  15. protected LocationCFType(CustomFieldValuePersister customFieldValuePersister, GenericConfigManager genericConfigManager) {
  16. super(customFieldValuePersister, genericConfigManager);
  17. }
  18. @Override
  19. protected PersistenceFieldType getDatabaseType() {
  20. return PersistenceFieldType.TYPE_LIMITED_TEXT;
  21. }
  22. @Override
  23. protected Object getDbValueFromObject(Object customFieldObject) {
  24. if (customFieldObject == null)
  25. return null;
  26. assertObjectImplementsType(Location.class, customFieldObject);
  27. final Location location = (Location) customFieldObject;
  28. return location.toString();
  29. }
  30. @Override
  31. protected Object getObjectFromDbValue(Object databaseValue) throws FieldValidationException {
  32. String locStr = (String) databaseValue;
  33. return new Location(locStr);
  34. }
  35. public String getStringFromSingularObject(Object singularObject) {
  36. assertObjectImplementsType(Location.class, singularObject);
  37. return ((Location) singularObject).toString();
  38. }
  39. public Object getSingularObjectFromString(String string) throws FieldValidationException {
  40. return new Location(string);
  41. }
  42. @Override
  43. public Map<String, Object> getVelocityParameters(Issue issue, CustomField field, FieldLayoutItem fieldLayoutItem) {
  44. final Map<String, Object> context = super.getVelocityParameters(issue, field, fieldLayoutItem);
  45. final Location value = issue != null ? (Location) issue.getCustomFieldValue(field) : null;
  46. if (value != null) {
  47. final IssueLocation issueLocation = (issue == null) ?
  48. new IssueLocation(value) : new IssueLocation(value, issue);
  49. context.put("location", issueLocation);
  50. }
  51. return context;
  52. }
  53. }