Interface FieldLayoutManager
- All Known Implementing Classes:
AbstractFieldLayoutManager
,DefaultFieldLayoutManager
,MockFieldLayoutManager
-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionvoid
addSchemeAssociation
(Project project, Long fieldLayoutSchemeId) Associates aFieldLayoutScheme
to the project supplied.void
addSchemeAssociation
(org.ofbiz.core.entity.GenericValue project, Long fieldLayoutSchemeId) Deprecated.copyFieldLayoutScheme
(FieldLayoutScheme scheme, String name, String description) Copies an existing field layout to a new one.createFieldLayoutScheme
(FieldLayoutScheme fieldLayoutScheme) Persists a new field Layout scheme (i.e Field Configuration Scheme).createFieldLayoutScheme
(String name, String description) Persists a new field Layout scheme (i.e Field Configuration Scheme).void
createFieldLayoutSchemeEntity
(FieldLayoutSchemeEntity fieldLayoutSchemeEntity) Persists a newFieldLayoutSchemeEntity
for a particularFieldLayoutScheme
.createFieldLayoutSchemeEntity
(FieldLayoutScheme fieldLayoutScheme, String issueTypeId, Long fieldConfigurationId) Persists a newFieldLayoutSchemeEntity
for a particularFieldLayoutScheme
.void
deleteFieldLayout
(FieldLayout fieldLayout) Deletes a customFieldLayout
void
deleteFieldLayoutScheme
(FieldLayoutScheme fieldLayoutScheme) Removes theFieldLayoutScheme
supplied.boolean
fieldConfigurationSchemeExists
(String schemeName) Checks if a FieldConfigurationScheme with the given name exists.Returns the defaultEditableDefaultFieldLayout
.Returns anEditableFieldLayout
for the id supplied.Retrieves editable (seeEditableFieldLayout
versions of the field layouts.getFieldConfigurationScheme
(Project project) Retrieves the Field Configuration Scheme associated with the supplied project.getFieldConfigurationScheme
(Long schemeId) Retrieves aFieldConfigurationScheme
by idgetFieldConfigurationSchemeForProject
(Long projectId) Retrieves the Field Configuration Scheme associated with the supplied project.getFieldConfigurationSchemes
(FieldLayout fieldLayout) Returns a collection ofFieldConfigurationScheme
s that include the givenFieldLayout
.Used to retrieveFieldLayout
information when rendering a screen.getFieldLayout
(Issue issue) Returns the fieldLayout for an issue.getFieldLayout
(Project project, String issueTypeId) getFieldLayout
(Long id) Used to retrieveFieldLayout
information when rendering a screen given the id of the field layout.getFieldLayout
(Long projectId, String issueTypeId) Find the FieldLayout for the given Project and IssueType.getFieldLayout
(org.ofbiz.core.entity.GenericValue issue) Deprecated.UsegetFieldLayout(com.atlassian.jira.issue.Issue)
instead.getFieldLayoutSchemeEntities
(FieldLayoutScheme fieldLayoutScheme) Returns a collection ofFieldLayoutSchemeEntity
s.Retries Field Configuration Schemes.getMutableFieldLayoutScheme
(Long schemeId) Retrieves a mutableFieldLayoutScheme
by id.Collection<org.ofbiz.core.entity.GenericValue>
getProjects
(FieldConfigurationScheme fieldConfigurationScheme) Deprecated.UsegetProjectsUsing(FieldConfigurationScheme)
instead.Collection<org.ofbiz.core.entity.GenericValue>
getProjects
(FieldLayoutScheme fieldLayoutScheme) Deprecated.UsegetProjectsUsing(FieldLayoutScheme)
instead.getProjectsUsing
(FieldConfigurationScheme fieldConfigurationScheme) Returns all projects that use the given FieldConfigurationScheme.getProjectsUsing
(FieldLayout fieldLayout) Finds all projects that use the givenFieldLayout
(via the configuredFieldConfigurationScheme
).getProjectsUsing
(FieldLayoutScheme fieldLayoutScheme) Returns all projects that use the given FieldLayoutScheme.Collection<org.ofbiz.core.entity.GenericValue>
getRelatedProjects
(FieldLayout fieldLayout) Deprecated.UsegetProjectsUsing(FieldLayout)
instead.getUniqueFieldLayouts
(Project project) Retrieves all theFieldLayout
's for a project.getUniqueFieldLayouts
(Collection<Project> projects, Collection<String> issueTypeIds) Retrieves all theFieldLayout
's for a collection of projects and issue types.boolean
Checks to see if aFieldLayout
entity with typeTYPE_DEFAULT
existsboolean
isFieldLayoutSchemesVisiblyEquivalent
(Long fieldConfigurationSchemeId1, Long fieldConfigurationSchemeId2) Will determine whether or not twoFieldLayoutScheme
s are "visibly equivalent".boolean
isFieldLayoutsVisiblyEquivalent
(Long fieldLayoutId1, Long fieldLayoutId2) Will determine whether or not twoFieldLayout
s are "visibly equivalent".void
refresh()
Clears all local caches.void
removeFieldLayoutScheme
(FieldLayoutScheme fieldLayoutScheme) void
removeFieldLayoutSchemeEntity
(FieldLayoutSchemeEntity fieldLayoutSchemeEntity) Removes aFieldLayoutSchemeEntity
void
removeSchemeAssociation
(Project project, Long fieldLayoutSchemeId) Removes an association between a particular project and field configuration scheme.void
removeSchemeAssociation
(org.ofbiz.core.entity.GenericValue project, Long fieldLayoutSchemeId) Deprecated.void
This method can be used to rollback any changes to the default field configuration.storeAndReturnEditableFieldLayout
(EditableFieldLayout editableFieldLayout) Persists theEditableFieldLayout
provided and returns a new instance as stored in the database.void
storeEditableDefaultFieldLayout
(EditableDefaultFieldLayout editableDefaultFieldLayout) Persist the given defaultEditableDefaultFieldLayout
void
storeEditableFieldLayout
(EditableFieldLayout editableFieldLayout) Persists theEditableFieldLayout
provided.void
updateFieldLayoutItemAttributesForCustomField
(CustomField customField, String description, boolean isRequired, boolean isHidden) Update thedescription
,isHidden
andisRequired
columns of all thefieldlayoutitem
rows associated with this custom field.void
updateFieldLayoutScheme
(FieldLayoutScheme fieldLayoutScheme) Persists theFieldLayoutScheme
supplied.void
updateFieldLayoutSchemeEntity
(FieldLayoutSchemeEntity fieldLayoutSchemeEntity) Updates aFieldLayoutSchemeEntity
.
-
Field Details
-
TYPE_DEFAULT
JIRA must have a default field layout. This is used identify the default layout.- See Also:
-
-
Method Details
-
createFieldLayoutScheme
Persists a new field Layout scheme (i.e Field Configuration Scheme).- Parameters:
fieldLayoutScheme
- TheFieldLayoutScheme
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
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
Retrieves aFieldConfigurationScheme
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
Retrieves a mutableFieldLayoutScheme
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 layerUnsupportedOperationException
- If this is executed against standard edition
-
fieldConfigurationSchemeExists
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 (seeEditableFieldLayout
versions of the field layouts. Note: For standard edition this simply returns an editable version of the default field layout. (seeEditableDefaultFieldLayout
)- Returns:
- A list of
EditableFieldLayout
andEditableDefaultFieldLayout
-
getFieldLayoutSchemes
List<FieldLayoutScheme> getFieldLayoutSchemes()Retries Field Configuration Schemes. These are used to link field configurations to projects.- Returns:
- A list of
FieldLayoutScheme
s. - Throws:
DataAccessException
- If there is a Data Layer error.UnsupportedOperationException
- If this is executed against standard edition
-
updateFieldLayoutScheme
Persists theFieldLayoutScheme
supplied.- Parameters:
fieldLayoutScheme
- The FieldLayoutScheme- Throws:
DataAccessException
- If there is a Data Layer error.UnsupportedOperationException
- If this is executed against standard edition
-
deleteFieldLayoutScheme
Removes theFieldLayoutScheme
supplied.- Parameters:
fieldLayoutScheme
- The FieldLayoutScheme- Throws:
DataAccessException
- If there is a Data Layer error.UnsupportedOperationException
- If this is executed against standard edition
-
getFieldConfigurationScheme
Retrieves the Field Configuration Scheme associated with the supplied project.- Parameters:
project
- A project- Returns:
- A
FieldConfigurationScheme
or null if none exists.
-
getFieldConfigurationSchemeForProject
Retrieves the Field Configuration Scheme associated with the supplied project.- Parameters:
projectId
- The project ID- Returns:
- A
FieldConfigurationScheme
or null if none exists. - Since:
- 6.4
-
getUniqueFieldLayouts
Retrieves all theFieldLayout
'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.
-
getUniqueFieldLayouts
@Nonnull Set<FieldLayout> getUniqueFieldLayouts(@Nonnull Collection<Project> projects, @Nonnull Collection<String> issueTypeIds) Retrieves all theFieldLayout
'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.
- Since:
- v6.4
-
addSchemeAssociation
Deprecated.UseaddSchemeAssociation(com.atlassian.jira.project.Project, Long)
instead. Since v5.2.Associates aFieldLayoutScheme
to the project supplied.- Parameters:
project
- A projectGenericValue
fieldLayoutSchemeId
- ID of the FieldLayoutScheme- Throws:
DataAccessException
- If there is an error in the DB layerUnsupportedOperationException
- If this is executed against standard editionIllegalArgumentException
- If the project supplied is null.
-
removeSchemeAssociation
Deprecated.UseremoveSchemeAssociation(com.atlassian.jira.project.Project, Long)
instead. Since v5.2.Removes an association between a particular project and field configuration scheme.- Parameters:
project
- A projectGenericValue
fieldLayoutSchemeId
- The fieldLayoutScheme ID- Throws:
UnsupportedOperationException
- If this is executed against standard editionDataAccessException
- If there is an error in the DB layer.
-
addSchemeAssociation
Associates aFieldLayoutScheme
to the project supplied.- Parameters:
project
- The projectfieldLayoutSchemeId
- ID of the FieldLayoutScheme- Throws:
IllegalArgumentException
- If the project supplied is null.
-
removeSchemeAssociation
Removes an association between a particular project and field configuration scheme.- Parameters:
project
- The projectfieldLayoutSchemeId
- The fieldLayoutScheme ID
-
getFieldLayout
FieldLayout getFieldLayout()Used to retrieveFieldLayout
information when rendering a screen.- Returns:
- the default FieldLayout
- Throws:
DataAccessException
- If there is a Data Layer error.
-
getFieldLayout
Used to retrieveFieldLayout
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
Deprecated.UsegetFieldLayout(com.atlassian.jira.issue.Issue)
instead. Since v5.0.Returns the fieldLayout for an issue.- Parameters:
issue
- An issueGenericValue
- Returns:
- A
FieldLayout
- Throws:
DataAccessException
- If there is a Data Layer error.
-
getFieldLayout
Returns the fieldLayout for an issue.- Parameters:
issue
- AnIssue
- Returns:
- A
FieldLayout
-
getFieldLayout
- Parameters:
project
- A projectissueTypeId
- The IssueType id of the issue.- Returns:
- A
FieldLayout
- Throws:
DataAccessException
- If there is a Data Layer error.- See Also:
-
getFieldLayout
Find the FieldLayout for the given Project and IssueType.- Parameters:
projectId
- the projectissueTypeId
- the issue type- Returns:
- the FieldLayout for the given Project and IssueType.
-
getEditableDefaultFieldLayout
EditableDefaultFieldLayout getEditableDefaultFieldLayout()Returns the defaultEditableDefaultFieldLayout
.- Returns:
- the default
EditableDefaultFieldLayout
. - Throws:
DataAccessException
- If there is a Data Layer error.
-
storeEditableDefaultFieldLayout
Persist the given defaultEditableDefaultFieldLayout
- Parameters:
editableDefaultFieldLayout
- The EditableDefaultFieldLayout.- Throws:
DataAccessException
- If there is a Data Layer error.
-
storeEditableFieldLayout
Persists theEditableFieldLayout
provided.- Parameters:
editableFieldLayout
- the EditableFieldLayout.- Throws:
DataAccessException
- If there is a Data Layer error.
-
storeAndReturnEditableFieldLayout
Persists theEditableFieldLayout
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.
-
hasDefaultFieldLayout
boolean hasDefaultFieldLayout()Checks to see if aFieldLayout
entity with typeTYPE_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) Deprecated.UsegetProjectsUsing(FieldConfigurationScheme)
instead. Since v6.4.Returns all projects that use the given FieldConfigurationScheme.- Parameters:
fieldConfigurationScheme
- the FieldConfigurationScheme- Returns:
- A list of projects that use the given FieldConfigurationScheme.
-
getProjectsUsing
Returns all projects that use the given FieldConfigurationScheme.- Parameters:
fieldConfigurationScheme
- the FieldConfigurationScheme- Returns:
- A list of projects that use the given FieldConfigurationScheme.
-
getProjects
Deprecated.UsegetProjectsUsing(FieldLayoutScheme)
instead. Since v6.4.Returns all associated projects for theFieldLayoutScheme
supplied.- Parameters:
fieldLayoutScheme
- the FieldLayoutScheme- Returns:
- A list of project
GenericValue
s - Throws:
DataAccessException
- If there is a Data Layer error.UnsupportedOperationException
- If this is executed against standard edition
-
getProjectsUsing
Returns all projects that use the given FieldLayoutScheme.- Parameters:
fieldLayoutScheme
- the FieldLayoutScheme- Returns:
- A list of projects that use the given FieldLayoutScheme.
-
refresh
void refresh()Clears all local caches. -
getEditableFieldLayout
Returns anEditableFieldLayout
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
Deletes a customFieldLayout
- Parameters:
fieldLayout
- The FieldLayout- Throws:
UnsupportedOperationException
- If this is executed against standard edition
-
getFieldLayoutSchemeEntities
Collection<FieldLayoutSchemeEntity> getFieldLayoutSchemeEntities(FieldLayoutScheme fieldLayoutScheme) Returns a collection ofFieldLayoutSchemeEntity
s. These are used to record mappings fromIssueType
->FieldLayout
for theFieldLayoutScheme
passed in.- Parameters:
fieldLayoutScheme
- The FieldLayoutScheme- Returns:
- A collection of
FieldLayoutSchemeEntity
s. - Throws:
UnsupportedOperationException
- If this is executed against standard edition
-
createFieldLayoutSchemeEntity
Persists a newFieldLayoutSchemeEntity
for a particularFieldLayoutScheme
. The appropriate scheme is retrieved usingFieldLayoutSchemeEntity.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 newFieldLayoutSchemeEntity
for a particularFieldLayoutScheme
. The appropriate scheme is retrieved usingFieldLayoutSchemeEntity.getFieldLayoutScheme()
- Parameters:
fieldLayoutScheme
- the FieldLayoutSchemeissueTypeId
- the Issue TypefieldConfigurationId
- the FieldConfig- Throws:
UnsupportedOperationException
- If this is executed against standard edition
-
updateFieldLayoutSchemeEntity
Updates aFieldLayoutSchemeEntity
.- Parameters:
fieldLayoutSchemeEntity
- The FieldLayoutSchemeEntity- Throws:
UnsupportedOperationException
- If this is executed against standard edition
-
removeFieldLayoutSchemeEntity
Removes aFieldLayoutSchemeEntity
- Parameters:
fieldLayoutSchemeEntity
- The FieldLayoutSchemeEntity- Throws:
UnsupportedOperationException
- If this is executed against standard edition
-
removeFieldLayoutScheme
- Parameters:
fieldLayoutScheme
- The FieldLayoutScheme- Throws:
UnsupportedOperationException
- If this is executed against standard edition
-
getFieldConfigurationSchemes
Returns a collection ofFieldConfigurationScheme
s that include the givenFieldLayout
.This is determined by retrieving all
FieldLayoutSchemeEntity
s with theFieldLayout
and calculating a set ofFieldConfigurationScheme
s using these entities.- Parameters:
fieldLayout
- The FieldLayout.- Returns:
- A collection of
FieldConfigurationScheme
s - Throws:
UnsupportedOperationException
- If this is executed against standard edition
-
getRelatedProjects
Deprecated.UsegetProjectsUsing(FieldLayout)
instead. Since v6.4.Finds all projects that use the givenFieldLayout
(via the configuredFieldConfigurationScheme
).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.
-
getProjectsUsing
Finds all projects that use the givenFieldLayout
(via the configuredFieldConfigurationScheme
).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 twoFieldLayoutScheme
s 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
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 usenull
for the system default schemefieldConfigurationSchemeId2
- the second scheme; can usenull
for the system default scheme- Returns:
- the result of the equivalence comparison
- Throws:
DataAccessException
- If there is a Data Layer error.
-
isFieldLayoutsVisiblyEquivalent
Will determine whether or not twoFieldLayout
s 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
- Parameters:
fieldLayoutId1
- the first layout id; null signifies the default field layout in the systemfieldLayoutId2
- the second layout id; null signifies the default field layout in the system- Returns:
- the result of the equivalence comparison
-
updateFieldLayoutItemAttributesForCustomField
void updateFieldLayoutItemAttributesForCustomField(@Nonnull CustomField customField, @Nonnull String description, boolean isRequired, boolean isHidden) Update thedescription
,isHidden
andisRequired
columns of all thefieldlayoutitem
rows associated with this custom field.- Parameters:
customField
- a CustomField which owns the affected fieldlayoutitemsdescription
- a String containing the new descriptionisRequired
- a boolean containing the new valueisHidden
- a boolean containing the new value.
-
addSchemeAssociation(com.atlassian.jira.project.Project, Long)
instead.