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>
  • Constructor Details

    • AbstractCustomFieldType

      public AbstractCustomFieldType()
  • Method Details

    • init

      public void init(CustomFieldTypeModuleDescriptor descriptor)
      Description copied from interface: CustomFieldType
      Initialises the CustomFieldType with the given descriptor.
      Specified by:
      init in interface CustomFieldType<T,S>
      Parameters:
      descriptor - CustomFieldTypeModuleDescriptor
    • getKey

      public final String 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 interface CustomFieldType<T,S>
      Returns:
      CustomFieldType Key prefixed with the Package
    • getName

      public final String getName()
      Specified by:
      getName in interface CustomFieldType<T,S>
    • getDescription

      public final String getDescription()
      Specified by:
      getDescription in interface CustomFieldType<T,S>
    • getDescriptor

      public final CustomFieldTypeModuleDescriptor getDescriptor()
      Specified by:
      getDescriptor in interface CustomFieldType<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 interface CustomFieldType<T,S>
      Parameters:
      issue - The issue currently in context (Note: this will be null in cases like 'default value')
      field - CustomField
      fieldLayoutItem - FieldLayoutItem
      Returns:
      A Map of parameters to add to the velocity context, or an empty Map otherwise (never null)
    • getVelocityParameters

      public final Map getVelocityParameters(Issue issue) throws IllegalAccessException
      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.
      Throws:
      IllegalAccessException
      See Also:
    • getConfigurationItemTypes

      @Nonnull public List<FieldConfigItemType> getConfigurationItemTypes()
      Description copied from interface: CustomFieldType
      Returns a List of FieldConfigItemType objects. Can not be immutable. This opens up possibilities for configurable custom fields.
      Specified by:
      getConfigurationItemTypes in interface CustomFieldType<T,S>
      Returns:
      List of FieldConfigItemType
    • getRelatedIndexers

      public List<FieldIndexer> getRelatedIndexers(CustomField customField)
      Description copied from interface: CustomFieldType
      Returns a list of indexers that will be used for the field.
      Specified by:
      getRelatedIndexers in interface CustomFieldType<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 interface CustomFieldType<T,S>
      Returns:
      true if the field is configurable for use with the renderers, a text based field, false otherwise.
    • valuesEqual

      public boolean valuesEqual(T v1, T v2)
      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 interface CustomFieldType<T,S>
      Parameters:
      v1 - current value
      v2 - new value
      Returns:
      true if the change item should be generated, false otherwise
    • getChangelogString

      public String getChangelogString(CustomField field, T value)
      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 interface CustomFieldType<T,S>
      Parameters:
      field - CustomField that the value belongs to
      value - Transport Object representing the value instance of the CustomField
      Returns:
      Change log string.
    • assertObjectImplementsType

      protected void assertObjectImplementsType(Class<?> clazz, Object o)
    • availableForBulkEdit

      public String availableForBulkEdit(BulkEditBean bulkEditBean)
      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 interface CustomFieldType<T,S>
      Parameters:
      bulkEditBean - BulkEditBean
      Returns:
      null if available for bulk edit or appropriate unavailable message
    • getI18nBean

      protected I18nHelper getI18nBean()
    • accept