public class

FieldLayoutSchemeImpl

extends AbstractGVBean
implements FieldLayoutScheme
java.lang.Object
   ↳ com.atlassian.jira.issue.fields.screen.AbstractGVBean
     ↳ com.atlassian.jira.issue.fields.layout.field.FieldLayoutSchemeImpl

Class Overview

Thread safety is mostly achieved (there are still some issues with the setGenericValue(GenericValue) method) by two mechanisms.

  1. all mutative operations to the map are done under a write-lock. For extra safety all stores/loads from the database are also done under the lock, even though this is not ideal.
  2. iteration over the map are protected by a read-lock.

Summary

[Expand]
Inherited Fields
From interface com.atlassian.jira.util.Named
Public Constructors
FieldLayoutSchemeImpl(FieldLayoutManager fieldLayoutManager, GenericValue genericValue)
Public Methods
void addEntity(FieldLayoutSchemeEntity fieldLayoutSchemeEntity)
boolean containsEntity(String issueTypeId)
String getDescription()
Collection<FieldLayoutSchemeEntity> getEntities()
FieldLayoutSchemeEntity getEntity(EditableFieldLayout editableFieldLayout)
FieldLayoutSchemeEntity getEntity(String issueTypeId)
Long getFieldLayoutId(String issueTypeId)
Returns the id of the field layout to use for this given issue type id.
Long getId()
String getName()
Collection<GenericValue> getProjects()
Collection<Project> getProjectsUsing()
void remove()
void removeEntity(String issueTypeId)
void setDescription(String description)
void setName(String name)
void store()
Protected Methods
void cacheEntity(FieldLayoutSchemeEntity fieldLayoutSchemeEntity)
void flushEntity(FieldLayoutSchemeEntity fieldLayoutSchemeEntity)
void init()
[Expand]
Inherited Methods
From class com.atlassian.jira.issue.fields.screen.AbstractGVBean
From class java.lang.Object
From interface com.atlassian.jira.issue.fields.layout.field.FieldLayoutScheme
From interface com.atlassian.jira.util.Named
From interface com.atlassian.jira.util.NamedWithDescription
From interface com.atlassian.jira.util.NamedWithId

Public Constructors

public FieldLayoutSchemeImpl (FieldLayoutManager fieldLayoutManager, GenericValue genericValue)

Public Methods

public void addEntity (FieldLayoutSchemeEntity fieldLayoutSchemeEntity)

public boolean containsEntity (String issueTypeId)

public String getDescription ()

public Collection<FieldLayoutSchemeEntity> getEntities ()

public FieldLayoutSchemeEntity getEntity (EditableFieldLayout editableFieldLayout)

public FieldLayoutSchemeEntity getEntity (String issueTypeId)

public Long getFieldLayoutId (String issueTypeId)

Returns the id of the field layout to use for this given issue type id. This will do all the necessary work to lookup the default entry if no specific mapping for the given isuse type id exists. So after calling this method simply use the returned field layout id.

Parameters
issueTypeId the Issue Type ID.
Returns
  • the id of the FieldLayout ("Field Configuration") to use for this given issue type id.

public Long getId ()

public String getName ()

public Collection<GenericValue> getProjects ()

public Collection<Project> getProjectsUsing ()

public void remove ()

public void removeEntity (String issueTypeId)

public void setDescription (String description)

public void setName (String name)

public void store ()

Protected Methods

protected void cacheEntity (FieldLayoutSchemeEntity fieldLayoutSchemeEntity)

protected void flushEntity (FieldLayoutSchemeEntity fieldLayoutSchemeEntity)

protected void init ()