public class

MockFieldLayoutManager

extends Object
implements FieldLayoutManager
java.lang.Object
   ↳ com.atlassian.jira.issue.fields.layout.field.MockFieldLayoutManager

Class Overview

Simple implementation of MockFieldLayoutManager.

Summary

[Expand]
Inherited Constants
From interface com.atlassian.jira.issue.fields.layout.field.FieldLayoutManager
Public Constructors
MockFieldLayoutManager()
Public Methods
MockFieldLayout addLayoutItem(Issue issue)
void addSchemeAssociation(Project project, Long fieldLayoutSchemeId)
Associates a FieldLayoutScheme to the project supplied.
void addSchemeAssociation(GenericValue project, Long fieldLayoutSchemeId)
Associates a FieldLayoutScheme to the project supplied.
FieldLayoutScheme copyFieldLayoutScheme(FieldLayoutScheme scheme, String name, String description)
Copies an existing field layout to a new one.
FieldLayoutScheme createFieldLayoutScheme(String name, String description)
Persists a new field Layout scheme (i.e Field Configuration Scheme).
FieldLayoutScheme createFieldLayoutScheme(FieldLayoutScheme fieldLayoutScheme)
Persists a new field Layout scheme (i.e Field Configuration Scheme).
FieldLayoutSchemeEntity createFieldLayoutSchemeEntity(FieldLayoutScheme fieldLayoutScheme, String issueTypeId, Long fieldConfigurationId)
Persists a new FieldLayoutSchemeEntity for a particular FieldLayoutScheme.
void createFieldLayoutSchemeEntity(FieldLayoutSchemeEntity fieldLayoutSchemeEntity)
Persists a new FieldLayoutSchemeEntity for a particular FieldLayoutScheme.
void deleteFieldLayout(FieldLayout fieldLayout)
Deletes a custom FieldLayout
void deleteFieldLayoutScheme(FieldLayoutScheme fieldLayoutScheme)
Removes the FieldLayoutScheme supplied.
boolean fieldConfigurationSchemeExists(String schemeName)
Checks if a FieldConfigurationScheme with the given name exists.
EditableDefaultFieldLayout getEditableDefaultFieldLayout()
Returns the default EditableDefaultFieldLayout.
EditableFieldLayout getEditableFieldLayout(Long id)
Returns an EditableFieldLayout for the id supplied.
List<EditableFieldLayout> getEditableFieldLayouts()
Retrieves editable (see EditableFieldLayout versions of the field layouts.
FieldConfigurationScheme getFieldConfigurationScheme(Project project)
Retrieves the Field Configuration Scheme associated with the supplied project.
FieldConfigurationScheme getFieldConfigurationScheme(Long schemeId)
Retrieves a FieldConfigurationScheme by id
FieldConfigurationScheme getFieldConfigurationSchemeForProject(Long projectId)
Retrieves the Field Configuration Scheme associated with the supplied project.
Collection<FieldConfigurationScheme> getFieldConfigurationSchemes(FieldLayout fieldLayout)
Returns a collection of FieldConfigurationSchemes that include the given FieldLayout.
FieldLayout getFieldLayout(GenericValue issue)
Returns the fieldLayout for an issue.
FieldLayout getFieldLayout(Issue issue)
Returns the fieldLayout for an issue.
FieldLayout getFieldLayout(Project project, String issueTypeId)
FieldLayout getFieldLayout()
Used to retrieve FieldLayout information when rendering a screen.
FieldLayout getFieldLayout(Long id)
Used to retrieve FieldLayout information when rendering a screen given the id of the field layout.
FieldLayout getFieldLayout(Long projectId, String issueTypeId)
Find the FieldLayout for the given Project and IssueType.
Collection<FieldLayoutSchemeEntity> getFieldLayoutSchemeEntities(FieldLayoutScheme fieldLayoutScheme)
Returns a collection of FieldLayoutSchemeEntitys.
List<FieldLayoutScheme> getFieldLayoutSchemes()
Retries Field Configuration Schemes.
FieldLayoutScheme getMutableFieldLayoutScheme(Long schemeId)
Retrieves a mutable FieldLayoutScheme by id.
Collection<GenericValue> getProjects(FieldConfigurationScheme fieldConfigurationScheme)
Returns all projects that use the given FieldConfigurationScheme.
Collection<GenericValue> getProjects(FieldLayoutScheme fieldLayoutScheme)
Returns all associated projects for the FieldLayoutScheme supplied.
Collection<Project> getProjectsUsing(FieldLayout fieldLayout)
Finds all projects that use the given FieldLayout (via the configured FieldConfigurationScheme).
Collection<Project> getProjectsUsing(FieldConfigurationScheme fieldConfigurationScheme)
Returns all projects that use the given FieldConfigurationScheme.
Collection<Project> getProjectsUsing(FieldLayoutScheme fieldLayoutScheme)
Returns all projects that use the given FieldLayoutScheme.
Collection<GenericValue> getRelatedProjects(FieldLayout fieldLayout)
Finds all projects that use the given FieldLayout (via the configured FieldConfigurationScheme).
Set<FieldLayout> getUniqueFieldLayouts(Project project)
Retrieves all the FieldLayout's for a project.
@Nonnull Set<FieldLayout> getUniqueFieldLayouts(Collection<Project> projects, Collection<String> issueTypeIds)
Retrieves all the FieldLayout's for a collection of projects and issue types.
boolean hasDefaultFieldLayout()
Checks to see if a FieldLayout entity with type TYPE_DEFAULT exists
boolean isFieldLayoutSchemesVisiblyEquivalent(Long fieldConfigurationSchemeId1, Long fieldConfigurationSchemeId2)
Will determine whether or not two FieldLayoutSchemes are "visibly equivalent".
boolean isFieldLayoutsVisiblyEquivalent(Long fieldLayoutId1, Long fieldLayoutId2)
Will determine whether or not two FieldLayouts are "visibly equivalent".
void refresh()
Clears all local caches.
void removeFieldLayoutScheme(FieldLayoutScheme fieldLayoutScheme)
void removeFieldLayoutSchemeEntity(FieldLayoutSchemeEntity fieldLayoutSchemeEntity)
void removeSchemeAssociation(Project project, Long fieldLayoutSchemeId)
Removes an association between a particular project and field configuration scheme.
void removeSchemeAssociation(GenericValue project, Long fieldLayoutSchemeId)
Removes an association between a particular project and field configuration scheme.
void restoreDefaultFieldLayout()
This method can be used to rollback any changes to the default field configuration.
MockFieldLayoutManager setFieldConfigurationScheme(Long id, FieldConfigurationScheme fieldConfigurationScheme)
MockFieldLayoutManager setFieldConfigurationScheme(Project project, FieldConfigurationScheme fieldConfigurationScheme)
MockFieldLayoutManager setFieldLayout(Project project, String issueTypeId, FieldLayout fieldLayout)
MockFieldLayoutManager setFieldLayout(Long id, FieldLayout fieldLayout)
MockFieldLayoutManager setFieldLayoutSchemes(List<FieldLayoutScheme> fieldLayoutSchemes)
EditableFieldLayout storeAndReturnEditableFieldLayout(EditableFieldLayout editableFieldLayout)
Persists the EditableFieldLayout provided and returns a new instance as stored in the database.
void storeEditableDefaultFieldLayout(EditableDefaultFieldLayout editableDefaultFieldLayout)
Persist the given default EditableDefaultFieldLayout
void storeEditableFieldLayout(EditableFieldLayout editableFieldLayout)
Persists the EditableFieldLayout provided.
String toString()
void updateFieldLayoutScheme(FieldLayoutScheme fieldLayoutScheme)
Persists the FieldLayoutScheme supplied.
void updateFieldLayoutSchemeEntity(FieldLayoutSchemeEntity fieldLayoutSchemeEntity)
[Expand]
Inherited Methods
From class java.lang.Object
From interface com.atlassian.jira.issue.fields.layout.field.FieldLayoutManager

Public Constructors

public MockFieldLayoutManager ()

Public Methods

public MockFieldLayout addLayoutItem (Issue issue)

public void addSchemeAssociation (Project project, Long fieldLayoutSchemeId)

Associates a FieldLayoutScheme to the project supplied.

Parameters
project The project
fieldLayoutSchemeId ID of the FieldLayoutScheme

public void addSchemeAssociation (GenericValue project, Long fieldLayoutSchemeId)

Associates a FieldLayoutScheme to the project supplied.

Parameters
project A project GenericValue
fieldLayoutSchemeId ID of the FieldLayoutScheme

public FieldLayoutScheme copyFieldLayoutScheme (FieldLayoutScheme scheme, String name, String description)

Copies an existing field layout to a new one.

public FieldLayoutScheme createFieldLayoutScheme (String name, String description)

Persists a new field Layout scheme (i.e Field Configuration Scheme).

public FieldLayoutScheme createFieldLayoutScheme (FieldLayoutScheme fieldLayoutScheme)

Persists a new field Layout scheme (i.e Field Configuration Scheme).

Parameters
fieldLayoutScheme The FieldLayoutScheme to persist.
Returns

public FieldLayoutSchemeEntity createFieldLayoutSchemeEntity (FieldLayoutScheme fieldLayoutScheme, String issueTypeId, Long fieldConfigurationId)

Persists a new FieldLayoutSchemeEntity for a particular FieldLayoutScheme. The appropriate scheme is retrieved using getFieldLayoutScheme()

Parameters
fieldLayoutScheme the FieldLayoutScheme
issueTypeId the Issue Type
fieldConfigurationId the FieldConfig

public void createFieldLayoutSchemeEntity (FieldLayoutSchemeEntity fieldLayoutSchemeEntity)

Persists a new FieldLayoutSchemeEntity for a particular FieldLayoutScheme. The appropriate scheme is retrieved using getFieldLayoutScheme()

Parameters
fieldLayoutSchemeEntity The FieldLayoutSchemeEntity

public void deleteFieldLayout (FieldLayout fieldLayout)

Deletes a custom FieldLayout

Parameters
fieldLayout The FieldLayout

public void deleteFieldLayoutScheme (FieldLayoutScheme fieldLayoutScheme)

Removes the FieldLayoutScheme supplied.

Parameters
fieldLayoutScheme The FieldLayoutScheme

public boolean fieldConfigurationSchemeExists (String schemeName)

Checks if a FieldConfigurationScheme with the given name exists.

Parameters
schemeName The scheme name
Returns
  • true if a FieldConfigurationScheme with the given name exists.

public EditableDefaultFieldLayout getEditableDefaultFieldLayout ()

Returns the default EditableDefaultFieldLayout.

Returns

public EditableFieldLayout getEditableFieldLayout (Long id)

Returns an EditableFieldLayout for the id supplied.

Parameters
id If the id is NULL, the default layout is returned.
Returns

public List<EditableFieldLayout> getEditableFieldLayouts ()

Retrieves editable (see EditableFieldLayout versions of the field layouts. Note: For standard edition this simply returns an editable version of the default field layout. (see EditableDefaultFieldLayout)

public FieldConfigurationScheme getFieldConfigurationScheme (Project project)

Retrieves the Field Configuration Scheme associated with the supplied project.

Parameters
project A project
Returns

public FieldConfigurationScheme getFieldConfigurationScheme (Long schemeId)

Retrieves a FieldConfigurationScheme by id

Parameters
schemeId FieldConfigurationScheme ID
Returns

public FieldConfigurationScheme getFieldConfigurationSchemeForProject (Long projectId)

Retrieves the Field Configuration Scheme associated with the supplied project.

Parameters
projectId The project ID
Returns

public Collection<FieldConfigurationScheme> getFieldConfigurationSchemes (FieldLayout fieldLayout)

Returns a collection of FieldConfigurationSchemes that include the given FieldLayout.

This is determined by retrieving all FieldLayoutSchemeEntitys with the FieldLayout and calculating a set of FieldConfigurationSchemes using these entities.

Parameters
fieldLayout The FieldLayout.
Returns

public FieldLayout getFieldLayout (GenericValue issue)

Returns the fieldLayout for an issue.

Parameters
issue An issue GenericValue
Returns

public FieldLayout getFieldLayout (Issue issue)

Returns the fieldLayout for an issue.

Parameters
issue An Issue
Returns

public FieldLayout getFieldLayout (Project project, String issueTypeId)

public FieldLayout getFieldLayout ()

Used to retrieve FieldLayout information when rendering a screen.

Returns
  • the default FieldLayout

public FieldLayout getFieldLayout (Long id)

Used to retrieve FieldLayout information when rendering a screen given the id of the field layout. If the ID is null, the default layout is returned.

Parameters
id The FieldLayout ID.
Returns

public FieldLayout getFieldLayout (Long projectId, String issueTypeId)

Find the FieldLayout for the given Project and IssueType.

Parameters
projectId the project
issueTypeId the issue type
Returns
  • the FieldLayout for the given Project and IssueType.

public Collection<FieldLayoutSchemeEntity> getFieldLayoutSchemeEntities (FieldLayoutScheme fieldLayoutScheme)

Returns a collection of FieldLayoutSchemeEntitys. These are used to record mappings from IssueType -> FieldLayout for the FieldLayoutScheme passed in.

Parameters
fieldLayoutScheme The FieldLayoutScheme
Returns

public List<FieldLayoutScheme> getFieldLayoutSchemes ()

Retries Field Configuration Schemes. These are used to link field configurations to projects.

Returns

public FieldLayoutScheme getMutableFieldLayoutScheme (Long schemeId)

Retrieves a mutable FieldLayoutScheme by id.

This returns a new copy of the object from the DB, and so will incur some performance penalty. Please use getFieldConfigurationScheme(Long) for access to a cached immutable scheme object.

Parameters
schemeId the scheme ID
Returns

public Collection<GenericValue> getProjects (FieldConfigurationScheme fieldConfigurationScheme)

Returns all projects that use the given FieldConfigurationScheme.

Parameters
fieldConfigurationScheme the FieldConfigurationScheme
Returns
  • A list of projects that use the given FieldConfigurationScheme.

public Collection<GenericValue> getProjects (FieldLayoutScheme fieldLayoutScheme)

Returns all associated projects for the FieldLayoutScheme supplied.

Parameters
fieldLayoutScheme the FieldLayoutScheme
Returns
  • A list of project GenericValues

public Collection<Project> getProjectsUsing (FieldLayout fieldLayout)

Finds all projects that use the given FieldLayout (via the configured FieldConfigurationScheme).

NOTE: In the case of Standard & Professional, this simply returns ALL projects, as the only fieldlayout is the default field layout.

Parameters
fieldLayout The FieldLayout.
Returns
  • The set of Projects that use the given FieldLayout.

public Collection<Project> getProjectsUsing (FieldConfigurationScheme fieldConfigurationScheme)

Returns all projects that use the given FieldConfigurationScheme.

Parameters
fieldConfigurationScheme the FieldConfigurationScheme
Returns
  • A list of projects that use the given FieldConfigurationScheme.

public Collection<Project> getProjectsUsing (FieldLayoutScheme fieldLayoutScheme)

Returns all projects that use the given FieldLayoutScheme.

Parameters
fieldLayoutScheme the FieldLayoutScheme
Returns
  • A list of projects that use the given FieldLayoutScheme.

public Collection<GenericValue> getRelatedProjects (FieldLayout fieldLayout)

Finds all projects that use the given FieldLayout (via the configured FieldConfigurationScheme).

NOTE: In the case of Standard & Professional, this simply returns ALL projects, as the only fieldlayout is the default field layout.

Parameters
fieldLayout The FieldLayout.
Returns
  • The set of Projects that use the given FieldLayout.

public Set<FieldLayout> getUniqueFieldLayouts (Project project)

Retrieves all the FieldLayout's for a project.

Parameters
project a project
Returns
  • the unique set of FieldLayout's for the provided project, an empty set if there are none.

@Nonnull public Set<FieldLayout> getUniqueFieldLayouts (Collection<Project> projects, Collection<String> issueTypeIds)

Retrieves all the FieldLayout's for a collection of projects and issue types.

Parameters
projects a collection of projects.
issueTypeIds An collection of issue type ids.
Returns
  • the unique set of FieldLayout's for the provided projects, an empty set if there are none.

public boolean hasDefaultFieldLayout ()

Checks to see if a FieldLayout entity with type TYPE_DEFAULT exists

Returns

public boolean isFieldLayoutSchemesVisiblyEquivalent (Long fieldConfigurationSchemeId1, Long fieldConfigurationSchemeId2)

Will determine whether or not two FieldLayoutSchemes are "visibly equivalent".

This can be useful for determining if swapping one field layout scheme for another in a project will have any affect on the visibility of fields in the project's issues. For instance, this will let us know if we need to re-index or not.

Since a scheme is a mapping from issue types to field layouts, two schemes are visibly equivalent if:

  • All issue types map to the same field layouts; or else
  • The field layouts that an issue type is associated with in each scheme are visibly equivalent
It is possible that one scheme may have a mapping for an issue type, but the other does not. In this case, equivalence is compared between the issue type specific one and the default field layout.

Note that equivalence is reflexive - all the associations in scheme1 must have equivalent associations in scheme2, and vice versa.

Parameters
fieldConfigurationSchemeId1 the first scheme; can use null for the system default scheme
fieldConfigurationSchemeId2 the second scheme; can use null for the system default scheme
Returns
  • the result of the equivalence comparison

public boolean isFieldLayoutsVisiblyEquivalent (Long fieldLayoutId1, Long fieldLayoutId2)

Will determine whether or not two FieldLayouts are "visibly equivalent".

This can be useful for determining if swapping one field layout for another in a project will have any affect on the visibility of fields in the project's issues. For instance, this will let us know if we need to re-index or not.

Two field layouts are visibly equivalent if:

  • They contain the same fields, and
  • Each field has the same shown/hidden flag
Note that equivalence is reflexive: layout1 == layout2 implies layout2 == layout1.

Parameters
fieldLayoutId1 the first layout id; null signifies the default field layout in the system
fieldLayoutId2 the second layout id; null signifies the default field layout in the system
Returns
  • the result of the equivalence comparison

public void refresh ()

Clears all local caches.

public void removeFieldLayoutScheme (FieldLayoutScheme fieldLayoutScheme)

public void removeFieldLayoutSchemeEntity (FieldLayoutSchemeEntity fieldLayoutSchemeEntity)

Parameters
fieldLayoutSchemeEntity The FieldLayoutSchemeEntity

public void removeSchemeAssociation (Project project, Long fieldLayoutSchemeId)

Removes an association between a particular project and field configuration scheme.

Parameters
project The project
fieldLayoutSchemeId The fieldLayoutScheme ID

public void removeSchemeAssociation (GenericValue project, Long fieldLayoutSchemeId)

Removes an association between a particular project and field configuration scheme.

Parameters
project A project GenericValue
fieldLayoutSchemeId The fieldLayoutScheme ID

public void restoreDefaultFieldLayout ()

This method can be used to rollback any changes to the default field configuration.

public MockFieldLayoutManager setFieldConfigurationScheme (Long id, FieldConfigurationScheme fieldConfigurationScheme)

public MockFieldLayoutManager setFieldConfigurationScheme (Project project, FieldConfigurationScheme fieldConfigurationScheme)

public MockFieldLayoutManager setFieldLayout (Project project, String issueTypeId, FieldLayout fieldLayout)

public MockFieldLayoutManager setFieldLayout (Long id, FieldLayout fieldLayout)

public MockFieldLayoutManager setFieldLayoutSchemes (List<FieldLayoutScheme> fieldLayoutSchemes)

public EditableFieldLayout storeAndReturnEditableFieldLayout (EditableFieldLayout editableFieldLayout)

Persists the EditableFieldLayout provided and returns a new instance as stored in the database.

Parameters
editableFieldLayout the EditableFieldLayout.
Returns
  • the layout as stored in the database.

public void storeEditableDefaultFieldLayout (EditableDefaultFieldLayout editableDefaultFieldLayout)

Persist the given default EditableDefaultFieldLayout

Parameters
editableDefaultFieldLayout The EditableDefaultFieldLayout.

public void storeEditableFieldLayout (EditableFieldLayout editableFieldLayout)

Persists the EditableFieldLayout provided.

Parameters
editableFieldLayout the EditableFieldLayout.

public String toString ()

public void updateFieldLayoutScheme (FieldLayoutScheme fieldLayoutScheme)

Persists the FieldLayoutScheme supplied.

Parameters
fieldLayoutScheme The FieldLayoutScheme

public void updateFieldLayoutSchemeEntity (FieldLayoutSchemeEntity fieldLayoutSchemeEntity)

Parameters
fieldLayoutSchemeEntity The FieldLayoutSchemeEntity