|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.atlassian.greenhopper.manager.lexorank.LexoRankDaoImpl
@Service public class LexoRankDaoImpl
Field Summary | |
---|---|
protected com.atlassian.activeobjects.external.ActiveObjects |
ao
|
Constructor Summary | |
---|---|
LexoRankDaoImpl()
|
Method Summary | |
---|---|
LockOutcome |
acquireLock(LexoRankRow[] rowsToLock,
LexoRankDaoContext ctx)
Attempts the acquire a database lock on the given LexoRankRows that represent rows in the LexoRank table. |
LockOutcome |
acquireLock(LexoRankRow rowToLock,
LexoRankDaoContext ctx)
Attempts the acquire a database lock on the given LexoRankRow that represents a row in the LexoRank table. |
LockOutcome |
acquireLock(java.lang.Long rowIdToLock,
LexoRankDaoContext ctx)
Attempts the acquire a database lock on the ID that represents a row in the LexoRank table. |
LockOutcome |
acquireLock(java.util.Set<LexoRankRow> rowsToLock,
LexoRankDaoContext ctx)
Attempts the acquire a database lock on the given LexoRankRows that represent rows in the LexoRank table. |
LockOutcome |
acquireLockByFieldId(java.lang.Long fieldId,
LexoRankDaoContext ctx)
Attempts the acquire a database lock on all rows in the LexoRank table whom's fieldId matches the given fieldId. |
java.util.Map<java.lang.String,java.lang.Long> |
countDuplicateRowsForFieldId(java.lang.Long fieldId,
LexoRankDaoContext ctx)
Returns a map of duplicate rank values and the amount of occurences of that rank value. |
LexoRankRow |
create(long fieldId,
long issueId,
java.lang.String rank)
Create a row in the db for the given rank, issueId and fieldId |
int |
createBulk(long fieldId,
java.util.Map<java.lang.Long,java.lang.String> issuesIdToRankMap)
Creates a batch of LexoRank rows in one statement |
void |
createMarkerRowsForRankField(long fieldId)
Creates the 'marker' rows for the given fieldId in the db. |
ServiceOutcome<java.lang.Void> |
deleteAll(LexoRankDaoContext ctx)
Deletes all rows. |
LockProcessOutcome<ServiceOutcome<java.lang.Void>> |
deleteByFieldId(Lock lock,
java.lang.Long fieldId,
LexoRankDaoContext ctx)
Deletes rows for the given fieldId |
LockProcessOutcome<ServiceOutcome<java.lang.Void>> |
deleteByFieldIdAndIssueId(Lock lock,
java.lang.Long fieldId,
java.lang.Long issueId,
LexoRankDaoContext ctx)
Deletes a single rank row for the given fieldId and issueId |
LockProcessOutcome<ServiceOutcome<java.lang.Void>> |
deleteByIssueId(Lock lock,
java.lang.Long issueId,
LexoRankDaoContext ctx)
Deletes rows for the given issueId |
boolean |
existsRankForFieldId(java.lang.Long rankFieldId,
java.lang.String rank,
LexoRankDaoContext ctx)
Checks if the given rank value already exists for the given rank field id. |
protected java.util.List<LexoRankRow> |
find(SqlSelectStatement selectStatement)
|
com.atlassian.fugue.Option<LexoRankRow> |
findByFieldAndIssueId(long fieldId,
long issueId,
LexoRankDaoContext ctx)
Finds a single rank row for the given fieldId and issueId |
LexoRankRow[] |
findByFieldId(long fieldId,
LexoRankDaoContext ctx)
WARNING: Do not use unless you know what you are doing because it returns all issues (which can be 100k+) Returns all ranking rows by field id |
LexoRankRow[] |
findByIssueId(long issueId,
LexoRankDaoContext ctx)
Returns all rank rows for a given issueId. |
java.util.Collection<java.lang.Long> |
findFieldsNeedingBalancing()
Retrieves a Collection of rank row IDs that require balancing. |
java.util.Set<java.lang.Long> |
findIssueIdsByFieldId(long fieldId)
Retrieves a Set of issueIds of rank rows for the given fieldId |
com.atlassian.fugue.Option<LexoRankRow> |
findMaximumMarkerRow(long fieldId,
LexoRankDaoContext ctx)
Finds the maximum marker row for the given fieldId |
com.atlassian.fugue.Option<LexoRankRow> |
findMinimumMarkerRow(long fieldId,
LexoRankDaoContext ctx)
Finds the minimum marker row for the given fieldId |
LexoRankRow |
findNextOneByRank(long fieldId,
java.lang.String rank,
LexoRankDaoContext ctx)
Find the next rank row (skipping over any duplicates) |
LexoRankRow |
getByFieldAndIssueId(long fieldId,
long issueId,
LexoRankDaoContext ctx)
Gets a single LexoRankRow object with the given fieldId and issueId |
LexoRankDaoContext |
getContext()
Returns a LexoRankDaoContext object that should be passed to any methods on the LexoRankDao that require it. |
LexoRankRow |
getMaximumMarkerRow(long fieldId,
LexoRankDaoContext ctx)
|
LexoRankRow[] |
getMaximumMarkerRowAndPreviousRow(long fieldId,
LexoRankDaoContext ctx)
Returns the maximum rank marker row and the previous row ranked before the maximum marker row for the given fieldId |
LexoRankRow |
getMinimumMarkerRow(long fieldId,
LexoRankDaoContext ctx)
|
LexoRankRow[] |
getMinimumMarkerRowAndNextRow(long fieldId,
LexoRankDaoContext ctx)
Returns the minimum rank marker row and the next row ranked behind the minimum marker row for the given fieldId |
LexoRankRow[] |
getRowByRankAndNextRow(long fieldId,
java.lang.String rank,
LexoRankDaoContext ctx)
Returns the rank row with the given rank and the row ranked after that row. |
LexoRankRow[] |
getRowByRankAndPreviousRow(long fieldId,
java.lang.String rank,
LexoRankDaoContext ctx)
Returns the rank row with the given rank and the row ranked before that row. |
LexoRankRow[] |
getRowsAtBalanceBoundaryForFieldId(java.lang.Long fieldId,
LexoRankBucket bucketBeingMigratedFrom,
LexoRankBucket bucketBeingMigratedTo,
LexoRankDaoContext ctx)
Finds the 2 rows at the balance boundary for the given field id and bucket. |
java.util.List<LexoRankRow> |
listByFieldIdAndRank(java.lang.Long fieldId,
java.lang.String rank,
LexoRankDaoContext ctx)
Lists all the LexoRankRows for the given rank field id that have the given rank. |
java.util.List<java.lang.Long> |
listIssueIdsByFieldIdAndIssueIds(long fieldId,
java.util.List<java.lang.Long> issueIds)
Returns a list of issue IDs for which a LexoRank row with fieldId and one of the given issueIds exists. |
java.util.Map<java.lang.Long,java.lang.Long> |
ranksCountByField()
Gets the number of distinct ranks for a field in the db |
void |
releaseLock(Lock lock,
LexoRankDaoContext ctx)
Releases the lock on all rows locked by the given lock. |
LockProcessOutcome<ServiceOutcome<LexoRankRow>> |
save(Lock lock,
LexoRankRow lexoRankRow,
LexoRankDaoContext ctx)
Update a LexoRankRow. |
ServiceOutcome<LexoRankRow> |
unlockedSave(LexoRankRow lexoRankRow,
LexoRankDaoContext ctx)
Update a LexoRankRow, without the need for it to be locked. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected com.atlassian.activeobjects.external.ActiveObjects ao
Constructor Detail |
---|
public LexoRankDaoImpl()
Method Detail |
---|
public void createMarkerRowsForRankField(long fieldId)
LexoRankDao
createMarkerRowsForRankField
in interface LexoRankDao
public LexoRankRow create(long fieldId, long issueId, java.lang.String rank)
LexoRankDao
create
in interface LexoRankDao
public int createBulk(long fieldId, java.util.Map<java.lang.Long,java.lang.String> issuesIdToRankMap)
LexoRankDao
createBulk
in interface LexoRankDao
public java.util.List<java.lang.Long> listIssueIdsByFieldIdAndIssueIds(long fieldId, java.util.List<java.lang.Long> issueIds)
LexoRankDao
listIssueIdsByFieldIdAndIssueIds
in interface LexoRankDao
public LexoRankRow[] findByFieldId(long fieldId, LexoRankDaoContext ctx)
LexoRankDao
findByFieldId
in interface LexoRankDao
fieldId
- the field id
protected java.util.List<LexoRankRow> find(SqlSelectStatement selectStatement)
public LexoRankDaoContext getContext()
LexoRankDao
getContext
in interface LexoRankDao
public LexoRankRow[] findByIssueId(long issueId, LexoRankDaoContext ctx)
LexoRankDao
findByIssueId
in interface LexoRankDao
public com.atlassian.fugue.Option<LexoRankRow> findByFieldAndIssueId(long fieldId, long issueId, LexoRankDaoContext ctx)
LexoRankDao
findByFieldAndIssueId
in interface LexoRankDao
public LexoRankRow getByFieldAndIssueId(long fieldId, long issueId, LexoRankDaoContext ctx)
LexoRankDao
getByFieldAndIssueId
in interface LexoRankDao
public com.atlassian.fugue.Option<LexoRankRow> findMinimumMarkerRow(long fieldId, LexoRankDaoContext ctx)
LexoRankDao
findMinimumMarkerRow
in interface LexoRankDao
public LexoRankRow getMinimumMarkerRow(long fieldId, LexoRankDaoContext ctx)
getMinimumMarkerRow
in interface LexoRankDao
public com.atlassian.fugue.Option<LexoRankRow> findMaximumMarkerRow(long fieldId, LexoRankDaoContext ctx)
LexoRankDao
findMaximumMarkerRow
in interface LexoRankDao
public LexoRankRow getMaximumMarkerRow(long fieldId, LexoRankDaoContext ctx)
getMaximumMarkerRow
in interface LexoRankDao
public LexoRankRow[] getMinimumMarkerRowAndNextRow(long fieldId, LexoRankDaoContext ctx)
LexoRankDao
getMinimumMarkerRowAndNextRow
in interface LexoRankDao
public LexoRankRow[] getMaximumMarkerRowAndPreviousRow(long fieldId, LexoRankDaoContext ctx)
LexoRankDao
getMaximumMarkerRowAndPreviousRow
in interface LexoRankDao
public LexoRankRow[] getRowByRankAndNextRow(long fieldId, java.lang.String rank, LexoRankDaoContext ctx)
LexoRankDao
getRowByRankAndNextRow
in interface LexoRankDao
public LexoRankRow findNextOneByRank(long fieldId, java.lang.String rank, LexoRankDaoContext ctx)
LexoRankDao
findNextOneByRank
in interface LexoRankDao
fieldId
- is the rank fieldrank
- is the rank value
public LexoRankRow[] getRowByRankAndPreviousRow(long fieldId, java.lang.String rank, LexoRankDaoContext ctx)
LexoRankDao
getRowByRankAndPreviousRow
in interface LexoRankDao
public java.util.Set<java.lang.Long> findIssueIdsByFieldId(long fieldId)
LexoRankDao
findIssueIdsByFieldId
in interface LexoRankDao
public java.util.Collection<java.lang.Long> findFieldsNeedingBalancing()
LexoRankDao
findFieldsNeedingBalancing
in interface LexoRankDao
public java.util.Map<java.lang.Long,java.lang.Long> ranksCountByField()
LexoRankDao
ranksCountByField
in interface LexoRankDao
public LockOutcome acquireLock(java.lang.Long rowIdToLock, LexoRankDaoContext ctx)
LexoRankDao
acquireLock
in interface LexoRankDao
public LockOutcome acquireLock(LexoRankRow rowToLock, LexoRankDaoContext ctx)
LexoRankDao
acquireLock
in interface LexoRankDao
public LockOutcome acquireLock(java.util.Set<LexoRankRow> rowsToLock, LexoRankDaoContext ctx)
LexoRankDao
acquireLock
in interface LexoRankDao
public LockOutcome acquireLock(LexoRankRow[] rowsToLock, LexoRankDaoContext ctx)
LexoRankDao
acquireLock
in interface LexoRankDao
public LockOutcome acquireLockByFieldId(java.lang.Long fieldId, LexoRankDaoContext ctx)
LexoRankDao
acquireLockByFieldId
in interface LexoRankDao
public void releaseLock(Lock lock, LexoRankDaoContext ctx)
LexoRankDao
releaseLock
in interface LexoRankDao
public LockProcessOutcome<ServiceOutcome<java.lang.Void>> deleteByIssueId(Lock lock, java.lang.Long issueId, LexoRankDaoContext ctx)
LexoRankDao
deleteByIssueId
in interface LexoRankDao
public LockProcessOutcome<ServiceOutcome<java.lang.Void>> deleteByFieldId(Lock lock, java.lang.Long fieldId, LexoRankDaoContext ctx)
LexoRankDao
deleteByFieldId
in interface LexoRankDao
public LockProcessOutcome<ServiceOutcome<java.lang.Void>> deleteByFieldIdAndIssueId(Lock lock, java.lang.Long fieldId, java.lang.Long issueId, LexoRankDaoContext ctx)
LexoRankDao
deleteByFieldIdAndIssueId
in interface LexoRankDao
public ServiceOutcome<java.lang.Void> deleteAll(LexoRankDaoContext ctx)
LexoRankDao
deleteAll
in interface LexoRankDao
public LockProcessOutcome<ServiceOutcome<LexoRankRow>> save(Lock lock, LexoRankRow lexoRankRow, LexoRankDaoContext ctx)
LexoRankDao
save
in interface LexoRankDao
lock
- is the lock objects.lexoRankRow
- the LexoRankRow to persist.
public ServiceOutcome<LexoRankRow> unlockedSave(LexoRankRow lexoRankRow, LexoRankDaoContext ctx)
LexoRankDao
unlockedSave
in interface LexoRankDao
lexoRankRow
- the LexoRankRow to save
public LexoRankRow[] getRowsAtBalanceBoundaryForFieldId(java.lang.Long fieldId, LexoRankBucket bucketBeingMigratedFrom, LexoRankBucket bucketBeingMigratedTo, LexoRankDaoContext ctx)
LexoRankDao
getRowsAtBalanceBoundaryForFieldId
in interface LexoRankDao
public boolean existsRankForFieldId(java.lang.Long rankFieldId, java.lang.String rank, LexoRankDaoContext ctx)
LexoRankDao
existsRankForFieldId
in interface LexoRankDao
public java.util.Map<java.lang.String,java.lang.Long> countDuplicateRowsForFieldId(java.lang.Long fieldId, LexoRankDaoContext ctx)
LexoRankDao
countDuplicateRowsForFieldId
in interface LexoRankDao
public java.util.List<LexoRankRow> listByFieldIdAndRank(java.lang.Long fieldId, java.lang.String rank, LexoRankDaoContext ctx)
LexoRankDao
listByFieldIdAndRank
in interface LexoRankDao
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |