/src/main/java/com/atlassian/jconnect/jira/customfields/LocationCFType.java
Java | 65 lines | 50 code | 12 blank | 3 comment | 6 complexity | 630daa531cd047e2a5a58d939cf5e3b8 MD5 | raw file
- package com.atlassian.jconnect.jira.customfields;
- import com.atlassian.jira.issue.Issue;
- import com.atlassian.jira.issue.customfields.impl.AbstractSingleFieldType;
- import com.atlassian.jira.issue.customfields.impl.FieldValidationException;
- import com.atlassian.jira.issue.customfields.manager.GenericConfigManager;
- import com.atlassian.jira.issue.customfields.persistence.CustomFieldValuePersister;
- import com.atlassian.jira.issue.customfields.persistence.PersistenceFieldType;
- import com.atlassian.jira.issue.fields.CustomField;
- import com.atlassian.jira.issue.fields.layout.field.FieldLayoutItem;
- import java.util.Map;
- /**
- *
- */
- public class LocationCFType extends AbstractSingleFieldType {
- protected LocationCFType(CustomFieldValuePersister customFieldValuePersister, GenericConfigManager genericConfigManager) {
- super(customFieldValuePersister, genericConfigManager);
- }
- @Override
- protected PersistenceFieldType getDatabaseType() {
- return PersistenceFieldType.TYPE_LIMITED_TEXT;
- }
- @Override
- protected Object getDbValueFromObject(Object customFieldObject) {
- if (customFieldObject == null)
- return null;
- assertObjectImplementsType(Location.class, customFieldObject);
- final Location location = (Location) customFieldObject;
- return location.toString();
- }
- @Override
- protected Object getObjectFromDbValue(Object databaseValue) throws FieldValidationException {
- String locStr = (String) databaseValue;
- return new Location(locStr);
- }
- public String getStringFromSingularObject(Object singularObject) {
- assertObjectImplementsType(Location.class, singularObject);
- return ((Location) singularObject).toString();
- }
- public Object getSingularObjectFromString(String string) throws FieldValidationException {
- return new Location(string);
- }
- @Override
- public Map<String, Object> getVelocityParameters(Issue issue, CustomField field, FieldLayoutItem fieldLayoutItem) {
- final Map<String, Object> context = super.getVelocityParameters(issue, field, fieldLayoutItem);
- final Location value = issue != null ? (Location) issue.getCustomFieldValue(field) : null;
- if (value != null) {
- final IssueLocation issueLocation = (issue == null) ?
- new IssueLocation(value) : new IssueLocation(value, issue);
- context.put("location", issueLocation);
- }
- return context;
- }
- }