|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.atlassian.jira.issue.customfields.impl.AbstractCustomFieldType<Collection<S>,S>
com.atlassian.jira.issue.customfields.impl.AbstractMultiCFType<Option>
com.atlassian.jira.issue.customfields.impl.MultiSelectCFType
public class MultiSelectCFType
Multiple Select Type allows selecting of multiple Options
CollectionOptionString of option id
| Nested Class Summary | |
|---|---|
static interface |
MultiSelectCFType.Visitor<T>
|
| Nested classes/interfaces inherited from class com.atlassian.jira.issue.customfields.impl.AbstractCustomFieldType |
|---|
AbstractCustomFieldType.VisitorBase<X> |
| Field Summary | |
|---|---|
static String |
COMMA_REPLACEMENT
|
| Fields inherited from class com.atlassian.jira.issue.customfields.impl.AbstractMultiCFType |
|---|
customFieldValuePersister, genericConfigManager |
| Fields inherited from interface com.atlassian.jira.issue.customfields.CustomFieldType |
|---|
DEFAULT_VALUE_TYPE |
| Constructor Summary | |
|---|---|
MultiSelectCFType(OptionsManager optionsManager,
CustomFieldValuePersister valuePersister,
GenericConfigManager genericConfigManager,
JiraBaseUrls jiraBaseUrls)
|
|
| Method Summary | |
|---|---|
Object |
accept(AbstractCustomFieldType.VisitorBase visitor)
|
int |
compare(List<String> customFieldObjectValue1,
List<String> customFieldObjectValue2,
FieldConfig fieldConfig)
Compares the two custom field objects. |
protected Option |
convertDbValueToType(Object dbValue)
Converts a given db value to Single form of Transport Object |
protected Object |
convertTypeToDbValue(Option value)
Converts a given underlying type to its db storage value. |
static Collection<String> |
extractTransferObjectFromString(String value)
Parses the given comma-separated String value into a Collection. |
String |
getChangelogString(CustomField field,
Collection<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. |
Collection<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. |
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. |
Options |
getOptions(FieldConfig fieldConfig,
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. |
org.apache.lucene.search.Query |
getQueryForGroup(String fieldName,
String groupName)
This method should be implemented in your custom type to return a Query. |
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. |
static String |
getStringFromTransferObject(Collection<String> collection)
Takes a Collection of values and creates a comma-separated String that represents this Collection. |
Object |
getStringValueFromCustomFieldParams(CustomFieldParams parameters)
Return the String value object from the CustomFieldParams. |
protected Comparator<Option> |
getTypeComparator()
Returns a comparator for underlying type of this custom field. |
Collection<Option> |
getValueFromCustomFieldParams(CustomFieldParams parameters)
Retrieves the Transport Object representing the CustomField value instance from the CustomFieldParams of Strings. |
Set<Long> |
remove(CustomField field)
called when removing a field. |
void |
removeValue(CustomField field,
Issue issue,
Option option)
Perform any actions required if the option selected by the issue is removed. |
void |
setDefaultValue(FieldConfig fieldConfig,
Collection<Option> value)
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. |
boolean |
valuesEqual(Collection<Option> v1,
Collection<Option> v2)
Used to compare 2 field values and work out whether a change item should be generated |
| Methods inherited from class com.atlassian.jira.issue.customfields.impl.AbstractMultiCFType |
|---|
convertDbObjectToTypes, convertTypesToDbObjects, createValue, getChangelogValue, getValueFromIssue, updateValue |
| Methods inherited from class com.atlassian.jira.issue.customfields.impl.AbstractCustomFieldType |
|---|
assertObjectImplementsType, availableForBulkEdit, getDescription, getDescriptor, getI18nBean, getKey, getName, getRelatedIndexers, getVelocityParameters, getVelocityParameters, init, isRenderable |
| Methods 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 |
|---|
availableForBulkEdit, createValue, getChangelogValue, getDescription, getDescriptor, getKey, getName, getRelatedIndexers, getValueFromIssue, getVelocityParameters, init, isRenderable, updateValue |
| Field Detail |
|---|
public static final String COMMA_REPLACEMENT
| Constructor Detail |
|---|
public MultiSelectCFType(OptionsManager optionsManager,
CustomFieldValuePersister valuePersister,
GenericConfigManager genericConfigManager,
JiraBaseUrls jiraBaseUrls)
| Method Detail |
|---|
public Set<Long> remove(CustomField field)
AbstractMultiCFType
remove in interface CustomFieldType<Collection<Option>,Option>remove in class AbstractMultiCFType<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
public Options getOptions(FieldConfig fieldConfig,
JiraContextNode jiraContextNode)
MultipleCustomFieldType
getOptions in interface MultipleCustomFieldType<Collection<Option>,Option>fieldConfig - configuration for this fieldjiraContextNode - context
public void removeValue(CustomField field,
Issue issue,
Option option)
MultipleSettableCustomFieldType
removeValue in interface MultipleSettableCustomFieldType<Collection<Option>,Option>field - being editedissue - to remove stuff fromoption - option being removed.
public Set<Long> getIssueIdsWithValue(CustomField field,
Option option)
MultipleSettableCustomFieldTypeLong) that have the given option selected.
getIssueIdsWithValue in interface MultipleSettableCustomFieldType<Collection<Option>,Option>field - the CustomField to search onoption - the Object representing a single value to search on.
@NotNull protected PersistenceFieldType getDatabaseType()
AbstractMultiCFType
getDatabaseType in class AbstractMultiCFType<Option>PersistenceFieldType types.protected Option convertDbValueToType(Object dbValue)
AbstractMultiCFType
convertDbValueToType in class AbstractMultiCFType<Option>dbValue - db representation as returned by AbstractMultiCFType.convertTypeToDbValue(Object)
protected Object convertTypeToDbValue(Option value)
AbstractMultiCFTypePersistenceFieldType returned by AbstractMultiCFType.getDatabaseType()
convertTypeToDbValue in class AbstractMultiCFType<Option>value - Single form of Transport Object
protected Comparator<Option> getTypeComparator()
AbstractMultiCFType
getTypeComparator in class AbstractMultiCFType<Option>
public void setDefaultValue(FieldConfig fieldConfig,
Collection<Option> value)
AbstractMultiCFType
setDefaultValue in interface CustomFieldType<Collection<Option>,Option>setDefaultValue in class AbstractMultiCFType<Option>fieldConfig - CustomField for which the default is being storedvalue - Transport Object representing the value instance of the CustomField.CustomFieldType.setDefaultValue(com.atlassian.jira.issue.fields.config.FieldConfig,Object)public Collection<Option> getDefaultValue(FieldConfig fieldConfig)
CustomFieldType
getDefaultValue in interface CustomFieldType<Collection<Option>,Option>getDefaultValue in class AbstractMultiCFType<Option>fieldConfig - CustomField for default value
CustomFieldType.getDefaultValue(com.atlassian.jira.issue.fields.config.FieldConfig)
public Collection<Option> getValueFromCustomFieldParams(CustomFieldParams parameters)
throws FieldValidationException
CustomFieldType
getValueFromCustomFieldParams in interface CustomFieldType<Collection<Option>,Option>parameters - CustomFieldParams of String objects. Will contain one value for Singular field types.
CustomFieldType.createValue(com.atlassian.jira.issue.fields.CustomField, com.atlassian.jira.issue.Issue, T), CustomFieldType.updateValue(com.atlassian.jira.issue.fields.CustomField, com.atlassian.jira.issue.Issue, T)
FieldValidationException - if the String value fails to convert into ObjectsCustomFieldType.createValue(com.atlassian.jira.issue.fields.CustomField, com.atlassian.jira.issue.Issue, Object),
CustomFieldType.updateValue(com.atlassian.jira.issue.fields.CustomField, com.atlassian.jira.issue.Issue, Object),
CustomFieldType.getValueFromIssue(com.atlassian.jira.issue.fields.CustomField, com.atlassian.jira.issue.Issue)public Object getStringValueFromCustomFieldParams(CustomFieldParams parameters)
CustomFieldType
getStringValueFromCustomFieldParams in interface CustomFieldType<Collection<Option>,Option>parameters - - CustomFieldParams containing String values
public 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<Collection<Option>,Option>relevantParams - parameter object of StringserrorCollectionToAddTo - errorCollection to which any erros should be added (never null)config - FieldConfig
public String getChangelogString(CustomField field,
Collection<Option> value)
CustomFieldType
getChangelogString in interface CustomFieldType<Collection<Option>,Option>getChangelogString in class AbstractCustomFieldType<Collection<Option>,Option>field - CustomField that the value belongs tovalue - Transport Object representing the value instance of the CustomField
public Option getSingularObjectFromString(String string)
throws FieldValidationException
CustomFieldType
getSingularObjectFromString in interface CustomFieldType<Collection<Option>,Option>string - the String
FieldValidationException - 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 Map
getStringFromSingularObject in interface CustomFieldType<Collection<Option>,Option>optionObject - the object
@NotNull public List<FieldConfigItemType> getConfigurationItemTypes()
CustomFieldTypeFieldConfigItemType objects. Can not be immutable.
This opens up possibilties for configurable custom fields.
getConfigurationItemTypes in interface CustomFieldType<Collection<Option>,Option>getConfigurationItemTypes in class AbstractCustomFieldType<Collection<Option>,Option>FieldConfigItemType
public int compare(@NotNull
List<String> customFieldObjectValue1,
@NotNull
List<String> customFieldObjectValue2,
FieldConfig fieldConfig)
SortableCustomField
compare in interface SortableCustomField<List<String>>customFieldObjectValue1 - Never nullcustomFieldObjectValue2 - Never null
public ProjectCustomFieldImporter getProjectImporter()
ProjectImportableCustomField
getProjectImporter in interface ProjectImportableCustomFieldpublic static Collection<String> extractTransferObjectFromString(String value)
"red, white\, and blue" would produce two tokens in its list:
value - The comma-separated input String.
getStringFromTransferObject(java.util.Collection)public static String getStringFromTransferObject(Collection<String> collection)
If any items in the collection include literal commas, then these commas are escaped with a prepended backslash. eg a list that looks like:
collection - a collection of Strings to be comma separated
public boolean valuesEqual(Collection<Option> v1,
Collection<Option> v2)
CustomFieldType
valuesEqual in interface CustomFieldType<Collection<Option>,Option>valuesEqual in class AbstractCustomFieldType<Collection<Option>,Option>v1 - current valuev2 - new value
public Object accept(AbstractCustomFieldType.VisitorBase visitor)
accept in class AbstractMultiCFType<Option>
public org.apache.lucene.search.Query getQueryForGroup(String fieldName,
String groupName)
GroupSelectorFieldfieldName:groupName. However some custom fields, such as (@Link SelectCFType)
manipulate the field identifiers and values before storing in the index. In cases like this you will have to
implement the method such that it searches the correct fields.
getQueryForGroup in interface GroupSelectorFieldfieldName - the id of the custom fieldgroupName - the name of the group to filter on
public FieldTypeInfo getFieldTypeInfo(FieldTypeInfoContext fieldTypeInfoContext)
RestAwareCustomFieldType
getFieldTypeInfo in interface RestAwareCustomFieldTypefieldTypeInfoContext - context information for generating the FieldTypeInfo.
public JsonType getJsonSchema(CustomField customField)
RestAwareCustomFieldType
getJsonSchema in interface RestAwareCustomFieldType
public FieldJsonRepresentation getJsonFromIssue(CustomField field,
Issue issue,
boolean renderedVersionRequested,
@Nullable
FieldLayoutItem fieldLayoutItem)
RestAwareCustomFieldType
getJsonFromIssue 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 JsonData getJsonDefaultValue(IssueContext issueCtx,
CustomField field)
RestCustomFieldTypeOperations
getJsonDefaultValue in interface RestCustomFieldTypeOperationsissueCtx - Issue (This should really only need to be an issue context, but for historical reasons we need an issue object.field - the Custom Field
public RestFieldOperationsHandler getRestFieldOperation(CustomField field)
RestCustomFieldTypeOperations
getRestFieldOperation in interface RestCustomFieldTypeOperationsfield - the Custom Field
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||