public class SelectCFType extends AbstractSingleFieldType<Option> implements MultipleSettableCustomFieldType<Option,Option>, SortableCustomField<String>, GroupSelectorField, ProjectImportableCustomField, RestAwareCustomFieldType, RestCustomFieldTypeOperations, ExportableCustomFieldType
| Modifier and Type | Class and Description |
|---|---|
static interface |
SelectCFType.Visitor<T> |
AbstractCustomFieldType.VisitorBase<X>customFieldValuePersister, FIELD_TYPE_DATE, FIELD_TYPE_NUMBER, FIELD_TYPE_STRING, FIELD_TYPE_TEXT, genericConfigManagerDEFAULT_VALUE_TYPE, RESOURCE_PREVIEW| Constructor and Description |
|---|
SelectCFType(CustomFieldValuePersister customFieldValuePersister,
OptionsManager optionsManager,
GenericConfigManager genericConfigManager,
JiraBaseUrls jiraBaseUrls) |
| Modifier and Type | Method and Description |
|---|---|
Object |
accept(AbstractCustomFieldType.VisitorBase visitor) |
int |
compare(String customFieldObjectValue1,
String customFieldObjectValue2,
FieldConfig fieldConfig)
Compares the two custom field objects.
|
String |
getChangelogString(CustomField field,
Option value)
Returns a String of representing values to be stored in the change log, an example is the name of a version
field that a version id will resolve to within JIRA.
|
List<FieldConfigItemType> |
getConfigurationItemTypes()
Returns a List of
FieldConfigItemType objects. |
protected PersistenceFieldType |
getDatabaseType()
Type of database field needed to store this field.
|
protected Object |
getDbValueFromObject(Option customFieldObject)
Returns the database representation of the Java object as stored for that CustomField.
|
Option |
getDefaultValue(FieldConfig fieldConfig)
Retrieves the Object representing the default CustomField value for the Custom Field.
|
FieldTypeInfo |
getFieldTypeInfo(FieldTypeInfoContext fieldTypeInfoContext)
Returns lower level Information about the field.
|
List<String> |
getIdentifiersForGroup(String groupName)
This method should be implemented in your custom type to return a List of identifiers of your group.
|
Set<Long> |
getIssueIdsWithValue(CustomField field,
Option option)
Returns a Set of issue ids (
Long) that have the given option selected. |
JsonData |
getJsonDefaultValue(IssueContext issueCtx,
CustomField field)
Return The default data for this system field.
|
FieldJsonRepresentation |
getJsonFromIssue(CustomField field,
Issue issue,
boolean renderedVersionRequested,
FieldLayoutItem fieldLayoutItem)
Return a JsonData representation of the field value
|
JsonType |
getJsonSchema(CustomField customField)
Return a description of the shape of this field when represented as JSON.
|
protected Option |
getObjectFromDbValue(Object databaseValue)
Returns the Transport Object for the given Custom Field value as represented by the value
stored in the database
|
Options |
getOptions(FieldConfig config,
JiraContextNode jiraContextNode)
Returns all possible Options for this field.
|
ProjectCustomFieldImporter |
getProjectImporter()
Returns the object that will perform the actual project import functions for the custom field type.
|
FieldExportParts |
getRepresentationFromIssue(Issue issue,
CustomFieldExportContext context)
Get the custom field representation of the issue, this object contains the column headers and values for each
of the
FieldExportPart. |
RestFieldOperationsHandler |
getRestFieldOperation(CustomField field)
Returns the RestFieldOperationsHandler for this field.
|
Option |
getSingularObjectFromString(String string)
Returns a Singular Object, given the string value as passed by the presentation tier.
|
String |
getStringFromSingularObject(Option optionObject)
Returns the
String representation of a single value within the CustomFieldType. |
Map<String,Object> |
getVelocityParameters(Issue issue,
CustomField field,
FieldLayoutItem fieldLayoutItem)
The custom field may wish to pass parameters to the velocity context beyond the getValueFromIssue methods
(eg managers).
|
Set<Long> |
remove(CustomField field)
called when removing a field.
|
void |
removeValue(CustomField field,
Issue issue,
Option option)
This default implementation will remove all values from the custom field for an issue.
|
void |
setDefaultValue(FieldConfig fieldConfig,
Option option)
Sets the default value for a Custom Field
|
void |
validateFromParams(CustomFieldParams relevantParams,
ErrorCollection errorCollectionToAddTo,
FieldConfig config)
Ensures that the
CustomFieldParams of Strings is a valid representation of the Custom Field values. |
createValue, getChangelogValue, getStringValueFromCustomFieldParams, getValueFromCustomFieldParams, getValueFromIssue, getValueFromIssue, updateValueassertObjectImplementsType, availableForBulkEdit, getDescription, getDescriptor, getI18nBean, getKey, getName, getRelatedIndexers, getVelocityParameters, init, isRenderable, valuesEqualclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitavailableForBulkEdit, createValue, getChangelogValue, getCloneOptionConfiguration, getCloneValue, getDescription, getDescriptor, getKey, getName, getRelatedIndexers, getStringValueFromCustomFieldParams, getValueFromCustomFieldParams, getValueFromIssue, init, isRenderable, isUserInputRequiredForMove, updateValue, valuesEqualpublic SelectCFType(CustomFieldValuePersister customFieldValuePersister, OptionsManager optionsManager, GenericConfigManager genericConfigManager, JiraBaseUrls jiraBaseUrls)
public Set<Long> remove(CustomField field)
AbstractSingleFieldTypeSubclasses should override this if they have specific cleanup that they need to do (such as removing select list values)
remove in interface CustomFieldType<Option,Option>remove in class AbstractSingleFieldType<Option>field - The custom field that is being removed, so any data stored for
any issues for that field can be deleted.Set of issue ids that has been affected@Nonnull protected PersistenceFieldType getDatabaseType()
AbstractSingleFieldTypegetDatabaseType in class AbstractSingleFieldType<Option>PersistenceFieldType types.protected Object getDbValueFromObject(Option customFieldObject)
AbstractSingleFieldTypeAbstractSingleFieldType.getDatabaseType()getDbValueFromObject in class AbstractSingleFieldType<Option>customFieldObject - the Transport Objectprotected Option getObjectFromDbValue(@Nonnull Object databaseValue) throws FieldValidationException
AbstractSingleFieldTypegetObjectFromDbValue in class AbstractSingleFieldType<Option>databaseValue - - String, Double or Date objects as returned from AbstractSingleFieldType.getDbValueFromObject(Object)FieldValidationException - if field validation fails.public void removeValue(CustomField field, Issue issue, Option option)
removeValue in interface MultipleSettableCustomFieldType<Option,Option>option - - ignoredfield - being editedissue - to remove stuff frompublic Option getSingularObjectFromString(String string) throws FieldValidationException
CustomFieldTypegetSingularObjectFromString in interface CustomFieldType<Option,Option>string - the StringFieldValidationException - if the string is an invalid representation of the Object.public String getStringFromSingularObject(Option optionObject)
CustomFieldTypeString representation of a single value within the CustomFieldType. This is the value that
is passed to the presentation tier for editing. For single CustomFieldTypes the Singular Object is
the same as a Transport Object. However, for multi-dimensional CustomFieldTypes, the Singular Object is
the Object contained within the Collection or MapgetStringFromSingularObject in interface CustomFieldType<Option,Option>optionObject - the objectpublic Set<Long> getIssueIdsWithValue(CustomField field, Option option)
MultipleSettableCustomFieldTypeLong) that have the given option selected.getIssueIdsWithValue in interface MultipleSettableCustomFieldType<Option,Option>field - the CustomField to search onoption - the Object representing a single value to search on.@Nonnull public List<FieldConfigItemType> getConfigurationItemTypes()
CustomFieldTypeFieldConfigItemType objects. Can not be immutable.
This opens up possibilities for configurable custom fields.getConfigurationItemTypes in interface CustomFieldType<Option,Option>getConfigurationItemTypes in class AbstractCustomFieldType<Option,Option>FieldConfigItemTypepublic void validateFromParams(CustomFieldParams relevantParams, ErrorCollection errorCollectionToAddTo, FieldConfig config)
CustomFieldTypeCustomFieldParams of Strings is a valid representation of the Custom Field values.
Any errors should be added to the ErrorCollection under the appropriate key as required.validateFromParams in interface CustomFieldType<Option,Option>validateFromParams in class AbstractSingleFieldType<Option>relevantParams - parameter object of StringserrorCollectionToAddTo - errorCollection to which any errors should be added (never null)config - FieldConfigpublic void setDefaultValue(FieldConfig fieldConfig, Option option)
CustomFieldTypesetDefaultValue in interface CustomFieldType<Option,Option>setDefaultValue in class AbstractSingleFieldType<Option>fieldConfig - CustomField for which the default is being storedoption - Transport Object representing the value instance of the CustomFieldpublic Option getDefaultValue(FieldConfig fieldConfig)
CustomFieldTypegetDefaultValue in interface CustomFieldType<Option,Option>getDefaultValue in class AbstractSingleFieldType<Option>fieldConfig - CustomField for default valuepublic String getChangelogString(CustomField field, Option value)
CustomFieldTypegetChangelogString in interface CustomFieldType<Option,Option>getChangelogString in class AbstractCustomFieldType<Option,Option>field - CustomField that the value belongs tovalue - Transport Object representing the value instance of the CustomField@Nonnull public Map<String,Object> getVelocityParameters(@Nullable Issue issue, CustomField field, FieldLayoutItem fieldLayoutItem)
CustomFieldTypeThe values are added to the context for all velocity views (edit, search, view, xml)
getVelocityParameters in interface CustomFieldType<Option,Option>getVelocityParameters in class AbstractCustomFieldType<Option,Option>issue - The issue currently in context (Note: this will be null in cases like 'default value')field - CustomFieldfieldLayoutItem - FieldLayoutItemMap of parameters to add to the velocity context, or an empty Map otherwise (never null)public Options getOptions(FieldConfig config, @Nullable JiraContextNode jiraContextNode)
MultipleCustomFieldTypegetOptions in interface MultipleCustomFieldType<Option,Option>config - configuration for this fieldjiraContextNode - contextpublic int compare(@Nonnull String customFieldObjectValue1, @Nonnull String customFieldObjectValue2, FieldConfig fieldConfig)
SortableCustomFieldcompare in interface SortableCustomField<String>customFieldObjectValue1 - Never nullcustomFieldObjectValue2 - Never nullpublic ProjectCustomFieldImporter getProjectImporter()
ProjectImportableCustomFieldgetProjectImporter in interface ProjectImportableCustomFieldpublic Object accept(AbstractCustomFieldType.VisitorBase visitor)
accept in class AbstractSingleFieldType<Option>public List<String> getIdentifiersForGroup(String groupName)
GroupSelectorFieldgroupName. However, some custom fields, such as SelectCFType
assign ids to their values and index the ids. In such a case, the custom field should return all the ids
under which the groupName was indexed. These should match the values that were used in the implementation of
AbstractCustomFieldIndexer.addIndex(org.apache.lucene.document.Document, com.atlassian.jira.issue.Issue)getIdentifiersForGroup in interface GroupSelectorFieldgroupName - The name of the grouppublic FieldExportParts getRepresentationFromIssue(Issue issue, CustomFieldExportContext context)
ExportableCustomFieldTypeFieldExportPart.getRepresentationFromIssue in interface ExportableCustomFieldTypeissue - to get the representation forcontext - which contains information such as the i18nHelper and fieldpublic FieldTypeInfo getFieldTypeInfo(FieldTypeInfoContext fieldTypeInfoContext)
RestAwareCustomFieldTypegetFieldTypeInfo in interface RestAwareCustomFieldTypefieldTypeInfoContext - context information for generating the FieldTypeInfo.public JsonType getJsonSchema(CustomField customField)
RestAwareCustomFieldTypegetJsonSchema in interface RestAwareCustomFieldTypepublic FieldJsonRepresentation getJsonFromIssue(CustomField field, Issue issue, boolean renderedVersionRequested, @Nullable FieldLayoutItem fieldLayoutItem)
RestAwareCustomFieldTypegetJsonFromIssue in interface RestAwareCustomFieldTypefield - configuration of the current fieldissue - to get field data fromrenderedVersionRequested - whether the use requested the return of rendered/pretty data as well as raw datafieldLayoutItem - field layout for this field.public RestFieldOperationsHandler getRestFieldOperation(CustomField field)
RestCustomFieldTypeOperationsgetRestFieldOperation in interface RestCustomFieldTypeOperationsfield - the Custom Fieldpublic JsonData getJsonDefaultValue(IssueContext issueCtx, CustomField field)
RestCustomFieldTypeOperationsgetJsonDefaultValue in interface RestCustomFieldTypeOperationsgetJsonDefaultValue in class AbstractSingleFieldType<Option>issueCtx - Issue (This should really only need to be an issue context, but for historical reasons we need an issue object.field - the Custom FieldCopyright © 2002-2021 Atlassian. All Rights Reserved.