Class AbstractCustomFieldType<T,S>
java.lang.Object
com.atlassian.jira.issue.customfields.impl.AbstractCustomFieldType<T,S>
- All Implemented Interfaces:
CustomFieldType<T,
S>
- Direct Known Subclasses:
AbstractMultiCFType
,AbstractMultiSettableCFType
,AbstractSingleFieldType
,CalculatedCFType
,CascadingSelectCFType
,LabelsCFType
@PublicSpi
public abstract class AbstractCustomFieldType<T,S>
extends Object
implements CustomFieldType<T,S>
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interface
Visitor interface for AbstractCustomFieldType.static interface
Marker interface for visitors of AbstractCustomFieldType (acyclic visitor). -
Field Summary
Fields inherited from interface com.atlassian.jira.issue.customfields.CustomFieldType
DEFAULT_VALUE_TYPE, RESOURCE_PREVIEW
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected void
assertObjectImplementsType
(Class<?> clazz, Object o) availableForBulkEdit
(BulkEditBean bulkEditBean) Allow the custom field type perform a specific check as to its availability for bulk editing.getChangelogString
(CustomField field, T 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.Returns a List ofFieldConfigItemType
objects.final String
protected I18nHelper
final String
getKey()
Returns the full key of the CustomFieldType.final String
getName()
getRelatedIndexers
(CustomField customField) Returns a list of indexers that will be used for the field.final Map
getVelocityParameters
(Issue issue) Implementers should override the 3-param version of this.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).void
init
(CustomFieldTypeModuleDescriptor descriptor) Initialises the CustomFieldType with the given descriptor.boolean
This is a mirror of the method from the RenderableField interface and is needed to bridge the gap between CustomFields and CustomFieldTypes.boolean
valuesEqual
(T v1, T v2) Used to compare 2 field values and work out whether a change item should be generatedMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.atlassian.jira.issue.customfields.CustomFieldType
areAllRequiredParametersPresent, createValue, getChangelogValue, getCloneOptionConfiguration, getCloneValue, getDefaultValue, getNonNullCustomFieldProvider, getSingularObjectFromString, getStringFromSingularObject, getStringValueFromCustomFieldParams, getValueFromCustomFieldParams, getValueFromIssue, isUserInputRequiredForMove, remove, setDefaultValue, updateValue, validateFromParams
-
Constructor Details
-
AbstractCustomFieldType
public AbstractCustomFieldType()
-
-
Method Details
-
init
Description copied from interface:CustomFieldType
Initialises the CustomFieldType with the given descriptor.- Specified by:
init
in interfaceCustomFieldType<T,
S> - Parameters:
descriptor
- CustomFieldTypeModuleDescriptor
-
getKey
Description copied from interface:CustomFieldType
Returns the full key of the CustomFieldType. Typically, this will be prefixed with "com.atlassian.jira.plugin.system.customfieldtypes:"- Specified by:
getKey
in interfaceCustomFieldType<T,
S> - Returns:
- CustomFieldType Key prefixed with the Package
-
getName
- Specified by:
getName
in interfaceCustomFieldType<T,
S>
-
getDescription
- Specified by:
getDescription
in interfaceCustomFieldType<T,
S>
-
getDescriptor
- Specified by:
getDescriptor
in interfaceCustomFieldType<T,
S>
-
getVelocityParameters
@Nonnull public Map<String,Object> getVelocityParameters(Issue issue, CustomField field, FieldLayoutItem fieldLayoutItem) Description copied from interface:CustomFieldType
The custom field may wish to pass parameters to the velocity context beyond the getValueFromIssue methods (eg managers).The values are added to the context for all velocity views (edit, search, view, xml)
- Specified by:
getVelocityParameters
in interfaceCustomFieldType<T,
S> - Parameters:
issue
- The issue currently in context (Note: this will be null in cases like 'default value')field
- CustomFieldfieldLayoutItem
- FieldLayoutItem- Returns:
- A
Map
of parameters to add to the velocity context, or an empty Map otherwise (never null)
-
getVelocityParameters
Implementers should override the 3-param version of this. We want to make attempts to use this version a compile error so plugin developers must add the extra params. -
getConfigurationItemTypes
Description copied from interface:CustomFieldType
Returns a List ofFieldConfigItemType
objects. Can not be immutable. This opens up possibilities for configurable custom fields.- Specified by:
getConfigurationItemTypes
in interfaceCustomFieldType<T,
S> - Returns:
- List of
FieldConfigItemType
-
getRelatedIndexers
Description copied from interface:CustomFieldType
Returns a list of indexers that will be used for the field.- Specified by:
getRelatedIndexers
in interfaceCustomFieldType<T,
S> - Parameters:
customField
- the custom field to get the related indexers of.- Returns:
- List of instantiated and initialised
FieldIndexer
objects. Null if no related indexers.
-
isRenderable
public boolean isRenderable()Description copied from interface:CustomFieldType
This is a mirror of the method from the RenderableField interface and is needed to bridge the gap between CustomFields and CustomFieldTypes.- Specified by:
isRenderable
in interfaceCustomFieldType<T,
S> - Returns:
- true if the field is configurable for use with the renderers, a text based field, false otherwise.
-
valuesEqual
Description copied from interface:CustomFieldType
Used to compare 2 field values and work out whether a change item should be generated- Specified by:
valuesEqual
in interfaceCustomFieldType<T,
S> - Parameters:
v1
- current valuev2
- new value- Returns:
- true if the change item should be generated, false otherwise
-
getChangelogString
Description copied from interface:CustomFieldType
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.- Specified by:
getChangelogString
in interfaceCustomFieldType<T,
S> - Parameters:
field
- CustomField that the value belongs tovalue
- Transport Object representing the value instance of the CustomField- Returns:
- Change log string.
-
assertObjectImplementsType
-
availableForBulkEdit
Description copied from interface:CustomFieldType
Allow the custom field type perform a specific check as to its availability for bulk editing.- Specified by:
availableForBulkEdit
in interfaceCustomFieldType<T,
S> - Parameters:
bulkEditBean
- BulkEditBean- Returns:
- null if available for bulk edit or appropriate unavailable message
-
getI18nBean
-
accept
-