public class MultiGroupCFType extends AbstractMultiCFType<com.atlassian.crowd.embedded.api.Group> implements GroupSelectorField, ProjectImportableCustomField, UserField, SortableCustomField<String>, RestAwareCustomFieldType, RestCustomFieldTypeOperations, ExportableCustomFieldType
Multiple User Group Select Type
Collection of GroupsGroupString of group name| Modifier and Type | Class and Description |
|---|---|
static interface |
MultiGroupCFType.Visitor<T> |
AbstractCustomFieldType.VisitorBase<X>| Modifier and Type | Field and Description |
|---|---|
protected MultiGroupConverter |
multiGroupConverter |
customFieldValuePersister, genericConfigManagerDEFAULT_VALUE_TYPE, RESOURCE_PREVIEW| Constructor and Description |
|---|
MultiGroupCFType(CustomFieldValuePersister customFieldValuePersister,
GenericConfigManager genericConfigManager,
MultiGroupConverter multiGroupConverter,
PermissionManager permissionManager,
JiraAuthenticationContext authenticationContext,
GroupManager groupManager,
FieldVisibilityManager fieldVisibilityManager,
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.
|
protected com.atlassian.crowd.embedded.api.Group |
convertDbValueToType(Object dbValue)
Converts a given db value to Single form of Transport Object
|
protected Object |
convertTypeToDbValue(com.atlassian.crowd.embedded.api.Group value)
Converts a given underlying type to its db storage value.
|
protected PersistenceFieldType |
getDatabaseType()
Type of database field needed to store this 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.
|
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.
|
ProjectCustomFieldImporter |
getProjectImporter()
Returns the object that will perform the actual project import functions for the custom field type.
|
List<FieldIndexer> |
getRelatedIndexers(CustomField customField)
Returns a list of indexers that will be used for the field.
|
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.
|
com.atlassian.crowd.embedded.api.Group |
getSingularObjectFromString(String s)
Returns a Singular Object, given the string value as passed by the presentation tier.
|
String |
getStringFromSingularObject(com.atlassian.crowd.embedded.api.Group o)
Returns the
String representation of a single value within the CustomFieldType. |
Object |
getStringValueFromCustomFieldParams(CustomFieldParams parameters)
Return the String value object from the CustomFieldParams.
|
protected Comparator<com.atlassian.crowd.embedded.api.Group> |
getTypeComparator()
Returns a comparator for underlying type of this custom field.
|
Collection<com.atlassian.crowd.embedded.api.Group> |
getValueFromCustomFieldParams(CustomFieldParams parameters)
Retrieves the Transport Object representing the CustomField value instance from the CustomFieldParams of Strings.
|
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).
|
boolean |
isMultiple() |
void |
validateFromParams(CustomFieldParams relevantParams,
ErrorCollection errorCollectionToAddTo,
FieldConfig config)
Ensures that the
CustomFieldParams of Strings is a valid representation of the Custom Field values. |
convertDbObjectToTypes, convertTypesToDbObjects, createValue, getChangelogValue, getDefaultValue, getValueFromIssue, remove, setDefaultValue, updateValueassertObjectImplementsType, availableForBulkEdit, getChangelogString, getConfigurationItemTypes, getDescription, getDescriptor, getI18nBean, getKey, getName, getVelocityParameters, init, isRenderable, valuesEqualclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetCloneOptionConfiguration, getCloneValue, isUserInputRequiredForMoveprotected final MultiGroupConverter multiGroupConverter
public MultiGroupCFType(CustomFieldValuePersister customFieldValuePersister, GenericConfigManager genericConfigManager, MultiGroupConverter multiGroupConverter, PermissionManager permissionManager, JiraAuthenticationContext authenticationContext, GroupManager groupManager, FieldVisibilityManager fieldVisibilityManager, JiraBaseUrls jiraBaseUrls)
protected Comparator<com.atlassian.crowd.embedded.api.Group> getTypeComparator()
AbstractMultiCFTypegetTypeComparator in class AbstractMultiCFType<com.atlassian.crowd.embedded.api.Group>public Collection<com.atlassian.crowd.embedded.api.Group> getValueFromCustomFieldParams(CustomFieldParams parameters) throws FieldValidationException
CustomFieldTypegetValueFromCustomFieldParams in interface CustomFieldType<Collection<com.atlassian.crowd.embedded.api.Group>,com.atlassian.crowd.embedded.api.Group>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)
CustomFieldTypegetStringValueFromCustomFieldParams in interface CustomFieldType<Collection<com.atlassian.crowd.embedded.api.Group>,com.atlassian.crowd.embedded.api.Group>parameters - - CustomFieldParams containing String valuespublic 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<com.atlassian.crowd.embedded.api.Group>,com.atlassian.crowd.embedded.api.Group>relevantParams - parameter object of StringserrorCollectionToAddTo - errorCollection to which any errors should be added (never null)config - FieldConfigpublic String getStringFromSingularObject(com.atlassian.crowd.embedded.api.Group o)
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<Collection<com.atlassian.crowd.embedded.api.Group>,com.atlassian.crowd.embedded.api.Group>o - the objectpublic com.atlassian.crowd.embedded.api.Group getSingularObjectFromString(String s) throws FieldValidationException
CustomFieldTypegetSingularObjectFromString in interface CustomFieldType<Collection<com.atlassian.crowd.embedded.api.Group>,com.atlassian.crowd.embedded.api.Group>s - the StringFieldValidationException - if the string is an invalid representation of the Object.public List<FieldIndexer> getRelatedIndexers(CustomField customField)
CustomFieldTypegetRelatedIndexers in interface CustomFieldType<Collection<com.atlassian.crowd.embedded.api.Group>,com.atlassian.crowd.embedded.api.Group>getRelatedIndexers in class AbstractCustomFieldType<Collection<com.atlassian.crowd.embedded.api.Group>,com.atlassian.crowd.embedded.api.Group>customField - the custom field to get the related indexers of.FieldIndexer objects. Null if no related indexers.@Nonnull public Map<String,Object> getVelocityParameters(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<Collection<com.atlassian.crowd.embedded.api.Group>,com.atlassian.crowd.embedded.api.Group>getVelocityParameters in class AbstractCustomFieldType<Collection<com.atlassian.crowd.embedded.api.Group>,com.atlassian.crowd.embedded.api.Group>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)protected Object convertTypeToDbValue(com.atlassian.crowd.embedded.api.Group value)
AbstractMultiCFTypePersistenceFieldType returned by AbstractMultiCFType.getDatabaseType()convertTypeToDbValue in class AbstractMultiCFType<com.atlassian.crowd.embedded.api.Group>value - Single form of Transport Objectprotected com.atlassian.crowd.embedded.api.Group convertDbValueToType(Object dbValue)
AbstractMultiCFTypeconvertDbValueToType in class AbstractMultiCFType<com.atlassian.crowd.embedded.api.Group>dbValue - db representation as returned by AbstractMultiCFType.convertTypeToDbValue(Object)@Nonnull protected PersistenceFieldType getDatabaseType()
AbstractMultiCFTypegetDatabaseType in class AbstractMultiCFType<com.atlassian.crowd.embedded.api.Group>PersistenceFieldType types.public boolean isMultiple()
public 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 ProjectCustomFieldImporter getProjectImporter()
ProjectImportableCustomFieldgetProjectImporter in interface ProjectImportableCustomFieldpublic 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 int compare(@Nonnull String customFieldObjectValue1, @Nonnull String customFieldObjectValue2, FieldConfig fieldConfig)
SortableCustomFieldcompare in interface SortableCustomField<String>customFieldObjectValue1 - Never nullcustomFieldObjectValue2 - Never nullpublic Object accept(AbstractCustomFieldType.VisitorBase visitor)
accept in class AbstractMultiCFType<com.atlassian.crowd.embedded.api.Group>public 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 RestCustomFieldTypeOperationsissueCtx - 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-2019 Atlassian. All Rights Reserved.