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

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

https://bitbucket.org/atlassian/jiraconnect-jiraplugin/
Java | 77 lines | 54 code | 15 blank | 8 comment | 2 complexity | bb8559bc4a0303fd8cb310f2ea215c32 MD5 | raw file
  1. package com.atlassian.jconnect.jira.customfields;
  2. import com.atlassian.core.util.XMLUtils;
  3. import com.atlassian.jconnect.jira.IssueHelper;
  4. import com.atlassian.jira.issue.Issue;
  5. import java.util.regex.Matcher;
  6. /**
  7. * Issue with location.
  8. *
  9. * @since v4.4
  10. */
  11. public class IssueLocation extends Location
  12. {
  13. private final String key;
  14. private final String environment;
  15. private final String iconHtml;
  16. public IssueLocation(Location latLng, Issue issue)
  17. {
  18. super(latLng.lat, latLng.lng);
  19. this.key = issue.getKey();
  20. this.environment = escape(formatEnvironmentString(issue.getEnvironment()));
  21. this.iconHtml = issue.getIssueTypeObject().getIconUrlHtml();
  22. }
  23. public IssueLocation(Location latLng)
  24. {
  25. super(latLng.getLat(), latLng.getLng());
  26. this.key = null;
  27. this.environment = null;
  28. this.iconHtml = null;
  29. }
  30. private String escape(String in)
  31. {
  32. return XMLUtils.escape(in).replaceAll("\n", "<br/>");
  33. }
  34. @Override
  35. public String toString()
  36. {
  37. return key + ": " + super.toString();
  38. }
  39. public String getKey()
  40. {
  41. return key;
  42. }
  43. public String getEnvironment()
  44. {
  45. return environment;
  46. }
  47. public String getIconHtml()
  48. {
  49. return iconHtml;
  50. }
  51. private String formatEnvironmentString(String environment) {
  52. // format the environment String a little
  53. // TODO: find a better way to store this device info?
  54. // TODO: Custom fields would be good, when we can auto-add them to a project.
  55. final Matcher matcher = IssueHelper.ENV_FIELD_PATTERN.matcher(environment);
  56. final StringBuilder smallEnv = new StringBuilder();
  57. if (matcher.find() && matcher.groupCount() >= 3) {
  58. smallEnv.append(matcher.group(1)).append(" ").append(matcher.group(2)).append(" Version: ").append(matcher.group(3));
  59. }
  60. return smallEnv.toString().replaceAll("\n", " ");
  61. }
  62. }