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)
          Associates a FieldLayoutScheme to the project supplied.
 FieldLayoutScheme createFieldLayoutScheme(FieldLayoutScheme fieldLayoutScheme)
          Persists a new field Layout scheme (i.e Field Configuration Scheme).
 void createFieldLayoutSchemeEntity(FieldLayoutSchemeEntity fieldLayoutSchemeEntity)
          Persists a new FieldLayoutSchemeEntity for a particular FieldLayoutScheme.
 void deleteFieldLayout(FieldLayout fieldLayout)
          Deletes a custom FieldLayout NOTE: This is an enterprise ONLY feature.
 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 NOTE: This is an enterprise ONLY feature.
 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)
          NOTE: This is an enterprise ONLY feature.
 void removeFieldLayoutSchemeEntity(FieldLayoutSchemeEntity fieldLayoutSchemeEntity)
          Removes a FieldLayoutSchemeEntity NOTE: This is an enterprise ONLY feature.
 void removeSchemeAssociation(org.ofbiz.core.entity.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.
 void restoreSchemeFieldLayout(org.ofbiz.core.entity.GenericValue scheme)
          Restores the field layout associated with the provided scheme to defaults.
 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). NOTE: This is an enterprise ONLY feature.

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

getFieldConfigurationScheme

FieldConfigurationScheme getFieldConfigurationScheme(Long schemeId)
Retrieves a FieldConfigurationScheme by id NOTE: This is an enterprise ONLY feature.

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.

NOTE: This is an enterprise ONLY feature.

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. NOTE: This is an enterprise ONLY feature.

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. NOTE: This is an enterprise ONLY feature.

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. NOTE: This is an enterprise ONLY feature.

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. NOTE: This is an enterprise ONLY feature.

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.

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. NOTE: This is an enterprise ONLY feature.

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)
Associates a FieldLayoutScheme to the project supplied. NOTE: This is an enterprise ONLY feature.

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)
Removes an association between a particular project and field configuration scheme. NOTE: This is an enterprise ONLY feature.

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.

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 GenericValue
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.

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. NOTE: This is an enterprise ONLY feature.

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. NOTE: This is an enterprise ONLY feature.

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. NOTE: This is an enterprise ONLY feature.

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. NOTE: This is an enterprise ONLY feature.

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 NOTE: This is an enterprise ONLY feature.

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. NOTE: This is an enterprise ONLY feature.

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() NOTE: This is an enterprise ONLY feature.

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

updateFieldLayoutSchemeEntity

void updateFieldLayoutSchemeEntity(FieldLayoutSchemeEntity fieldLayoutSchemeEntity)
Updates a FieldLayoutSchemeEntity. NOTE: This is an enterprise ONLY feature.

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

removeFieldLayoutSchemeEntity

void removeFieldLayoutSchemeEntity(FieldLayoutSchemeEntity fieldLayoutSchemeEntity)
Removes a FieldLayoutSchemeEntity NOTE: This is an enterprise ONLY feature.

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

removeFieldLayoutScheme

void removeFieldLayoutScheme(FieldLayoutScheme fieldLayoutScheme)
NOTE: This is an enterprise ONLY feature.

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. NOTE: This is an enterprise ONLY feature.

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-2012 Atlassian. All Rights Reserved.