com.atlassian.jira.issue.fields.layout.field
Interface FieldLayoutManager

All Known Implementing Classes:
AbstractFieldLayoutManager, DefaultFieldLayoutManager, MockFieldLayoutManager

@PublicApi
public interface FieldLayoutManager

The FieldLayoutManager is responsible for managing field configurations and field configuration schemes.


Field Summary
static String TYPE_DEFAULT
          JIRA must have a default field layout.
 
Method Summary
 void addSchemeAssociation(org.ofbiz.core.entity.GenericValue project, Long fieldLayoutSchemeId)
          Deprecated. Use addSchemeAssociation(com.atlassian.jira.project.Project, Long) instead. Since v5.2.
 void addSchemeAssociation(Project 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(FieldLayoutScheme fieldLayoutScheme)
          Persists a new field Layout scheme (i.e Field Configuration Scheme).
 FieldLayoutScheme createFieldLayoutScheme(String name, String description)
          Persists a new field Layout scheme (i.e Field Configuration Scheme).
 void createFieldLayoutSchemeEntity(FieldLayoutSchemeEntity fieldLayoutSchemeEntity)
          Persists a new FieldLayoutSchemeEntity for a particular FieldLayoutScheme.
 FieldLayoutSchemeEntity createFieldLayoutSchemeEntity(FieldLayoutScheme fieldLayoutScheme, String issueTypeId, Long fieldConfigurationId)
          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(org.ofbiz.core.entity.GenericValue project)
          Deprecated. Use getFieldConfigurationScheme(com.atlassian.jira.project.Project) instead. Since v4.3
 FieldConfigurationScheme getFieldConfigurationScheme(Long schemeId)
          Retrieves a FieldConfigurationScheme by id
 FieldConfigurationScheme getFieldConfigurationScheme(Project project)
          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()
          Used to retrieve FieldLayout information when rendering a screen.
 FieldLayout getFieldLayout(org.ofbiz.core.entity.GenericValue issue)
          Deprecated. Use getFieldLayout(com.atlassian.jira.issue.Issue) instead. Since v5.0.
 FieldLayout getFieldLayout(org.ofbiz.core.entity.GenericValue project, String issueTypeId)
          Deprecated. Use getFieldLayout(com.atlassian.jira.project.Project, String) instead. Since v4.3
 FieldLayout getFieldLayout(Issue issue)
          Returns the fieldLayout for an issue.
 FieldLayout getFieldLayout(Long id)
          Used to retrieve FieldLayout information when rendering a screen given the id of the field layout.
 FieldLayout getFieldLayout(Project project, String issueTypeId)
           
 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<org.ofbiz.core.entity.GenericValue> getProjects(FieldConfigurationScheme fieldConfigurationScheme)
          Returns all projects that use the given FieldConfigurationScheme.
 Collection<org.ofbiz.core.entity.GenericValue> getProjects(FieldLayoutScheme fieldLayoutScheme)
          Returns all associated projects for the FieldLayoutScheme supplied.
 Collection<org.ofbiz.core.entity.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.
 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)
          Removes a FieldLayoutSchemeEntity
 void removeSchemeAssociation(org.ofbiz.core.entity.GenericValue project, Long fieldLayoutSchemeId)
          Deprecated. Use removeSchemeAssociation(com.atlassian.jira.project.Project, Long) instead. Since v5.2.
 void removeSchemeAssociation(Project 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.
 void restoreSchemeFieldLayout(org.ofbiz.core.entity.GenericValue scheme)
          Restores the field layout associated with the provided scheme to defaults.
 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.
 void updateFieldLayoutScheme(FieldLayoutScheme fieldLayoutScheme)
          Persists the FieldLayoutScheme supplied.
 void updateFieldLayoutSchemeEntity(FieldLayoutSchemeEntity fieldLayoutSchemeEntity)
          Updates a FieldLayoutSchemeEntity.
 

Field Detail

TYPE_DEFAULT

static final String TYPE_DEFAULT
JIRA must have a default field layout. This is used identify the default layout.

See Also:
Constant Field Values
Method Detail

createFieldLayoutScheme

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

Parameters:
fieldLayoutScheme - The FieldLayoutScheme to persist.
Returns:
The stored FieldLayoutScheme object
Throws:
DataAccessException - If there is a Data Layer error.
UnsupportedOperationException - If this is executed against standard edition

createFieldLayoutScheme

FieldLayoutScheme createFieldLayoutScheme(@Nonnull
                                          String name,
                                          @Nullable
                                          String description)
Persists a new field Layout scheme (i.e Field Configuration Scheme).


copyFieldLayoutScheme

FieldLayoutScheme copyFieldLayoutScheme(@Nonnull
                                        FieldLayoutScheme scheme,
                                        @Nonnull
                                        String name,
                                        @Nullable
                                        String description)
Copies an existing field layout to a new one.


getFieldConfigurationScheme

FieldConfigurationScheme getFieldConfigurationScheme(Long schemeId)
Retrieves a FieldConfigurationScheme by id

Parameters:
schemeId - FieldConfigurationScheme ID
Returns:
A FieldConfigurationScheme instance
Throws:
DataAccessException - If there is a DB exception.
UnsupportedOperationException - If this is executed against standard edition

getMutableFieldLayoutScheme

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:
A FieldLayoutScheme instance
Throws:
DataAccessException - if an error occurs in the DB layer
UnsupportedOperationException - If this is executed against standard edition

fieldConfigurationSchemeExists

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.
Throws:
DataAccessException - If there is a DB error.
UnsupportedOperationException - If this is executed against standard edition

getEditableFieldLayouts

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)

Returns:
A list of EditableFieldLayout and EditableDefaultFieldLayout

getFieldLayoutSchemes

List<FieldLayoutScheme> getFieldLayoutSchemes()
Retries Field Configuration Schemes. These are used to link field configurations to projects.

Returns:
A list of FieldLayoutSchemes.
Throws:
DataAccessException - If there is a Data Layer error.
UnsupportedOperationException - If this is executed against standard edition

updateFieldLayoutScheme

void updateFieldLayoutScheme(FieldLayoutScheme fieldLayoutScheme)
Persists the FieldLayoutScheme supplied.

Parameters:
fieldLayoutScheme - The FieldLayoutScheme
Throws:
DataAccessException - If there is a Data Layer error.
UnsupportedOperationException - If this is executed against standard edition

deleteFieldLayoutScheme

void deleteFieldLayoutScheme(FieldLayoutScheme fieldLayoutScheme)
Removes the FieldLayoutScheme supplied.

Parameters:
fieldLayoutScheme - The FieldLayoutScheme
Throws:
DataAccessException - If there is a Data Layer error.
UnsupportedOperationException - If this is executed against standard edition

getFieldConfigurationScheme

FieldConfigurationScheme getFieldConfigurationScheme(Project project)
Retrieves the Field Configuration Scheme associated with the supplied project.

Parameters:
project - A project
Returns:
A FieldConfigurationScheme or null if none exists.
Throws:
DataAccessException - If there is a Data Layer error.
UnsupportedOperationException - If this is executed against standard edition
IllegalArgumentException - If the project supplied is null.

getFieldConfigurationScheme

FieldConfigurationScheme getFieldConfigurationScheme(org.ofbiz.core.entity.GenericValue project)
Deprecated. Use getFieldConfigurationScheme(com.atlassian.jira.project.Project) instead. Since v4.3

Retrieves the Field Configuration Scheme associated with the supplied project.

Parameters:
project - A project GenericValue
Returns:
A FieldConfigurationScheme or null if none exists.
Throws:
DataAccessException - If there is a Data Layer error.
UnsupportedOperationException - If this is executed against standard edition
IllegalArgumentException - If the project supplied is null.

getUniqueFieldLayouts

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.
Throws:
DataAccessException - If there is a Data Layer error.

addSchemeAssociation

void addSchemeAssociation(org.ofbiz.core.entity.GenericValue project,
                          Long fieldLayoutSchemeId)
Deprecated. Use addSchemeAssociation(com.atlassian.jira.project.Project, Long) instead. Since v5.2.

Associates a FieldLayoutScheme to the project supplied.

Parameters:
project - A project GenericValue
fieldLayoutSchemeId - ID of the FieldLayoutScheme
Throws:
DataAccessException - If there is an error in the DB layer
UnsupportedOperationException - If this is executed against standard edition
IllegalArgumentException - If the project supplied is null.

removeSchemeAssociation

void removeSchemeAssociation(org.ofbiz.core.entity.GenericValue project,
                             Long fieldLayoutSchemeId)
Deprecated. Use removeSchemeAssociation(com.atlassian.jira.project.Project, Long) instead. Since v5.2.

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

Parameters:
project - A project GenericValue
fieldLayoutSchemeId - The fieldLayoutScheme ID
Throws:
UnsupportedOperationException - If this is executed against standard edition
DataAccessException - If there is an error in the DB layer.

addSchemeAssociation

void addSchemeAssociation(Project project,
                          Long fieldLayoutSchemeId)
Associates a FieldLayoutScheme to the project supplied.

Parameters:
project - The project
fieldLayoutSchemeId - ID of the FieldLayoutScheme
Throws:
IllegalArgumentException - If the project supplied is null.

removeSchemeAssociation

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

getFieldLayout

FieldLayout getFieldLayout()
Used to retrieve FieldLayout information when rendering a screen.

Returns:
the default FieldLayout
Throws:
DataAccessException - If there is a Data Layer error.

getFieldLayout

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:
The FieldLayout
Throws:
UnsupportedOperationException - If this is executed against standard edition

getFieldLayout

FieldLayout getFieldLayout(org.ofbiz.core.entity.GenericValue issue)
Deprecated. Use getFieldLayout(com.atlassian.jira.issue.Issue) instead. Since v5.0.

Returns the fieldLayout for an issue.

Parameters:
issue - An issue GenericValue
Returns:
A FieldLayout
Throws:
DataAccessException - If there is a Data Layer error.

getFieldLayout

FieldLayout getFieldLayout(Issue issue)
Returns the fieldLayout for an issue.

Parameters:
issue - An Issue
Returns:
A FieldLayout

getFieldLayout

FieldLayout getFieldLayout(Project project,
                           String issueTypeId)
Parameters:
project - A project
issueTypeId - The IssueType id of the issue.
Returns:
A FieldLayout
Throws:
DataAccessException - If there is a Data Layer error.
See Also:
getFieldLayout(Issue)

getFieldLayout

FieldLayout getFieldLayout(org.ofbiz.core.entity.GenericValue project,
                           String issueTypeId)
Deprecated. Use getFieldLayout(com.atlassian.jira.project.Project, String) instead. Since v4.3

Parameters:
project - the Project
issueTypeId - The IssueType id of the issue.
Returns:
A FieldLayout
Throws:
DataAccessException - If there is a Data Layer error.

getEditableDefaultFieldLayout

EditableDefaultFieldLayout getEditableDefaultFieldLayout()
Returns the default EditableDefaultFieldLayout.

Returns:
the default EditableDefaultFieldLayout.
Throws:
DataAccessException - If there is a Data Layer error.

storeEditableDefaultFieldLayout

void storeEditableDefaultFieldLayout(EditableDefaultFieldLayout editableDefaultFieldLayout)
Persist the given default EditableDefaultFieldLayout

Parameters:
editableDefaultFieldLayout - The EditableDefaultFieldLayout.
Throws:
DataAccessException - If there is a Data Layer error.

storeEditableFieldLayout

void storeEditableFieldLayout(EditableFieldLayout editableFieldLayout)
Persists the EditableFieldLayout provided.

Parameters:
editableFieldLayout - the EditableFieldLayout.
Throws:
DataAccessException - If there is a Data Layer error.

storeAndReturnEditableFieldLayout

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.
Throws:
DataAccessException - If there is a Data Layer error.

restoreDefaultFieldLayout

void restoreDefaultFieldLayout()
This method can be used to rollback any changes to the default field configuration.

Throws:
DataAccessException - If there is a Data Layer error.

restoreSchemeFieldLayout

void restoreSchemeFieldLayout(org.ofbiz.core.entity.GenericValue scheme)
Restores the field layout associated with the provided scheme to defaults. Essentially this involves removing all previously configured custom items.

Parameters:
scheme - A scheme GenericValue
Throws:
DataAccessException - If there is a Data Layer error.
IllegalArgumentException - if the scheme passes is null.
UnsupportedOperationException - If this is executed against standard edition

hasDefaultFieldLayout

boolean hasDefaultFieldLayout()
Checks to see if a FieldLayout entity with type TYPE_DEFAULT exists

Returns:
True if a default FieldLayout exists, false otherwise.
Throws:
DataAccessException - If there is a Data Layer error.

getProjects

Collection<org.ofbiz.core.entity.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.

getProjects

Collection<org.ofbiz.core.entity.GenericValue> getProjects(FieldLayoutScheme fieldLayoutScheme)
Returns all associated projects for the FieldLayoutScheme supplied.

Parameters:
fieldLayoutScheme - the FieldLayoutScheme
Returns:
A list of project GenericValues
Throws:
DataAccessException - If there is a Data Layer error.
UnsupportedOperationException - If this is executed against standard edition

refresh

void refresh()
Clears all local caches.


getEditableFieldLayout

EditableFieldLayout getEditableFieldLayout(Long id)
Returns an EditableFieldLayout for the id supplied.

Parameters:
id - If the id is NULL, the default layout is returned.
Returns:
An EditableFieldLayout
Throws:
UnsupportedOperationException - If this is executed against standard edition

deleteFieldLayout

void deleteFieldLayout(FieldLayout fieldLayout)
Deletes a custom FieldLayout

Parameters:
fieldLayout - The FieldLayout
Throws:
UnsupportedOperationException - If this is executed against standard edition

getFieldLayoutSchemeEntities

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:
A collection of FieldLayoutSchemeEntitys.
Throws:
UnsupportedOperationException - If this is executed against standard edition

createFieldLayoutSchemeEntity

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

Parameters:
fieldLayoutSchemeEntity - The FieldLayoutSchemeEntity
Throws:
UnsupportedOperationException - If this is executed against standard edition

createFieldLayoutSchemeEntity

FieldLayoutSchemeEntity createFieldLayoutSchemeEntity(FieldLayoutScheme fieldLayoutScheme,
                                                      String issueTypeId,
                                                      Long fieldConfigurationId)
Persists a new FieldLayoutSchemeEntity for a particular FieldLayoutScheme. The appropriate scheme is retrieved using FieldLayoutSchemeEntity.getFieldLayoutScheme()

Parameters:
fieldLayoutScheme -
issueTypeId -
fieldConfigurationId -
Throws:
UnsupportedOperationException - If this is executed against standard edition

updateFieldLayoutSchemeEntity

void updateFieldLayoutSchemeEntity(FieldLayoutSchemeEntity fieldLayoutSchemeEntity)
Updates a FieldLayoutSchemeEntity.

Parameters:
fieldLayoutSchemeEntity - The FieldLayoutSchemeEntity
Throws:
UnsupportedOperationException - If this is executed against standard edition

removeFieldLayoutSchemeEntity

void removeFieldLayoutSchemeEntity(FieldLayoutSchemeEntity fieldLayoutSchemeEntity)
Removes a FieldLayoutSchemeEntity

Parameters:
fieldLayoutSchemeEntity - The FieldLayoutSchemeEntity
Throws:
UnsupportedOperationException - If this is executed against standard edition

removeFieldLayoutScheme

void removeFieldLayoutScheme(FieldLayoutScheme fieldLayoutScheme)
Parameters:
fieldLayoutScheme - The FieldLayoutScheme
Throws:
UnsupportedOperationException - If this is executed against standard edition

getFieldConfigurationSchemes

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:
A collection of FieldConfigurationSchemes
Throws:
UnsupportedOperationException - If this is executed against standard edition

getRelatedProjects

Collection<org.ofbiz.core.entity.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.

isFieldLayoutSchemesVisiblyEquivalent

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:

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
Throws:
DataAccessException - If there is a Data Layer error.

isFieldLayoutsVisiblyEquivalent

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:

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


Copyright © 2002-2014 Atlassian. All Rights Reserved.