com.danube.scrumworks.api2
Interface ScrumWorksAPI


public interface ScrumWorksAPI

Defines the ScrumWorks SOAP API v2. The old version is in com.danube.scrumworks.api.ScrumWorksBean.


Method Summary
 void addTeamsForProduct(java.lang.Long productId, java.util.List<java.lang.Long> teamIds)
          Adds an existing team to the product, support both sprint and kanban teams.
 void addThemeToBacklogItems(java.util.List<java.lang.Long> backlogItems, java.lang.Long themeId)
          Adds the backlog items to the theme.
 void addUsersToTeam(java.lang.Long teamId, java.util.List<java.lang.Long> userIds)
          Adds the users given to the team.
 BacklogItem createBacklogItem(BacklogItem backlogItem)
          Creates a backlog item.
 Comment createCommentForBacklogItem(java.lang.Long backlogItemId, java.lang.String comment)
          Creates a comment for the given backlog item.
 Comment createCommentForTask(java.lang.Long taskId, java.lang.String comment)
          Creates a comment for the given task.
 BacklogItemStatus createCustomBacklogItemStatus(BacklogItemStatus backlogItemStatus)
          Creates a custom backlogitem status into a product.
 Impediment createImpediment(Impediment impediment)
          Creates a new impediment.
 Product createProduct(ProductProperties productProperties)
          Creates a product with default backlog item statuses.
 ProductRole createProductRole(java.lang.Long productId, java.lang.String name, java.lang.String description, java.util.List<java.lang.Integer> permissionIds)
          Creates a product role for the given product with name description and list of permissions.
 Release createRelease(Release release)
          Creates a new release.
 Sprint createSprint(Sprint sprint)
          Creates a sprint.
 Task createTask(Task task)
          Creates a task.
 Team createTeam(Team team, java.util.List<java.lang.Long> userIds)
          Creates a Team with the set of userIds given and returns the created Team.
 Theme createTheme(Theme theme)
          Creates a new theme.
 void deleteBacklogItem(java.lang.Long backlogItemId, boolean keepHistory)
          Deletes a backlog item from the backlog along with its estimates.
 void deleteCustomBacklogItemStatus(java.lang.Long statusIdToDelete, java.lang.Long statusIdToMerge)
          Deletes a cusotm backlogitem status from a product and merges the backlogitems of deleted status into status provided with merge id.
 void deleteEmptyRelease(java.lang.Long releaseId)
          Deletes an empty release.
 void deleteEmptySprint(java.lang.Long sprintId)
          Deletes an empty sprint.
 void deleteProduct(java.lang.Long productId)
          Deletes a product.
 void deleteProductRole(java.lang.Long productRoleId)
          Deletes product role from a product and removes the specified product role from all users.
 void deleteTask(java.lang.Long taskId)
          Deletes a task from the backlog.
 Task deleteTaskEstimate(java.lang.Long taskId, java.util.Date date)
          Removes a task's estimate for the given day.
 void deleteTeam(java.lang.Long teamId)
          Deletes the Team with the given id.
 void deleteTheme(java.lang.Long themeId)
          Deletes an existing theme.
 java.util.List<Permission> getAllPermissions()
          Gets all available permissions.
 java.util.List<TaskHoursSpent> getAllTaskHoursSpentOnTask(java.lang.Long taskId)
          Returns the total hours spent by all users for the given task, ordered by date.
 BacklogItem getBacklogItemById(java.lang.Long backlogItemId)
          Finds a backlog item identified by by ID.
 BacklogItem getBacklogItemByKey(java.lang.String backlogItemKey)
          Finds a backlog item identified by key.
 java.util.List<Estimate> getBacklogItemEstimates(java.lang.Long backlogItemId)
          Gets the list of backlog item estimates for a given backlog item.
 java.util.List<BacklogItem> getBacklogItemsByIds(java.util.List<java.lang.Long> backlogItemIds)
          Finds multiple backlog items identified by ID.
 java.util.List<BacklogItem> getBacklogItemsForKanbanTeam(java.lang.Long teamId, java.lang.Long productId, boolean includeInactive)
          Returns a list of backlog items for a given kanban team, in the same order as they appear in the backlog scheduler.
 java.util.List<BacklogItem> getBacklogItemsForReleaseInProduct(java.lang.Long releaseId, java.lang.Long productId, boolean includeInactive)
          Returns a list of backlog items for a given release in a product.
 java.util.List<BacklogItem> getBacklogItemsForSprint(java.lang.Long sprintId, boolean includeInactive)
          Returns a list of backlog items for a given sprint, in the same order as they appear in the backlog scheduler.
 java.util.List<BacklogItem> getBacklogItemsForTheme(java.lang.Long themeId, boolean includeInactive)
          Gets the backlog items tagged with the indicated theme.
 java.util.List<BacklogItem> getBacklogItemsForThemeInProduct(java.lang.Long themeId, java.lang.Long productId, boolean includeInactive)
          Gets the backlog items for a specified theme and product.
 java.util.List<BacklogItem> getBacklogItemsInProduct(java.lang.Long productId, boolean includeInactive)
          Returns a list of the backlog items in the product.
 java.util.List<BacklogItem> getBacklogItemsInRelease(java.lang.Long releaseId, boolean includeInactive)
          Returns a list of backlog items for a given release.
 AggregateVersionedData getChangesSinceRevision(java.lang.Long productId, int revision)
          Gets the items that have changed, including ones that were deleted, since the given revision.
 AggregateVersionedData getChangesSinceRevisionForIds(int revision, boolean includeDeltas, FilterChangesById ids)
          Gets the items that have changed, including ones that were deleted, since the given revision.
 AggregateVersionedData getChangesSinceRevisionForTypes(java.lang.Long productId, int revision, FilterChangesByType types)
          Gets the items that have changed, including ones that were deleted, since the given revision.
 java.util.List<Comment> getCommentsForBacklogItem(java.lang.Long backlogItemId)
          Lists comments for a particular backlog item.
 java.util.List<Comment> getCommentsForTask(java.lang.Long taskId)
          Lists comments for a particular task.
 RevisionInfo getCurrentRevisionInfo()
          Gets the current revision information.
 AggregateVersionedData getCurrentState(java.lang.Long productId)
          Gets the most recent version of all items within the given product.
 java.util.List<BacklogItemStatus> getCustomBacklogItemStatuses(java.lang.Long productId)
          Gets the custom backlog item statuses.
 java.util.List<DashboardReleaseStatistics> getDashboardStatistics(java.lang.Long productId, java.util.Date startDate, java.util.Date endDate)
          Gets statistics about the releases within the given date range for a product.
 java.util.List<Epic> getEpicsForRelease(java.lang.Long releaseId)
          Lists Product Epics for the given Product Release, or list Program Epics for the given Program Release.
 java.util.List<Epic> getEpicsForReleaseInProduct(java.lang.Long releaseId, java.lang.Long productId)
          Lists epics for the given product or program release within the given product.
 Impediment getImpedimentById(java.lang.Long impedimentId)
          Finds an impediment by id.
 java.util.List<Impediment> getImpediments(java.lang.Long productId)
          Gets the impediments for a given product.
 Product getProductById(java.lang.Long productId)
          Finds a product by its ID.
 Product getProductByName(java.lang.String productName)
          Finds a product by name.
 java.util.List<Epic> getProductEpicsForEpic(Epic epic)
          When provided with a program epic, returns all the product epics using that program epic.
 AggregateProductRoleData getProductRoles(java.lang.Long productId)
          Gets the product roles for a product id.
 java.util.List<Product> getProducts()
           
 Program getProgramById(java.lang.Long programId)
          Returns the program with the given id.
 java.util.List<Program> getPrograms()
          Returns all the programs in ScrumWorks.
 java.util.List<Release> getReleasesForProduct(java.lang.Long productId)
          Returns the releases associated with the given product in the order they appear in the product backlog.
 java.util.List<Release> getReleasesForProgram(java.lang.Long programId)
          Lists the program's releases in the order they appear in the program release planner.
 Sprint getSprintById(java.lang.Long sprintId)
          Gets the sprint with the given ID.
 java.util.List<Sprint> getSprintsForProduct(java.lang.Long productId)
          Returns the list of sprints for the given product.
 java.util.List<Sprint> getSprintsInProductForTeam(java.lang.Long productId, java.lang.Long teamId)
          Returns the list of sprints in the given product assigned to the team.
 Task getTaskById(java.lang.Long taskId)
          Returns the task with the given id.
 java.util.List<Estimate> getTaskEstimates(java.lang.Long taskId)
          Returns the task estimates for the given task in chronological order.
 java.util.List<TaskHoursSpent> getTaskHoursSpentOnTaskByPerson(java.lang.Long taskId, java.lang.String displayName)
          Returns the hours spent by a user on a single task, ordered by date.
 java.util.List<Task> getTasks(java.lang.Long backlogItemId)
          Returns the tasks for the given backlog item.
 java.util.List<Task> getTasksForKanbanTeam(java.lang.Long teamId, java.lang.Long productId)
          Returns the list of tasks for the given kanban team in the product.
 java.util.List<Task> getTasksForProduct(java.lang.Long productId)
          Get all tasks in active backlog items for a product.
 java.util.List<Task> getTasksForSprint(java.lang.Long sprintId)
          Returns the list of tasks for the given sprint ordered by backlog item rank then task rank.
 java.util.List<java.lang.String> getTaskStatuses()
          Returns the available task status names.
 Team getTeamById(java.lang.Long teamId)
          Gets the team by id.
 java.util.List<User> getTeamMembers(java.lang.Long teamId)
          Returns the list of team members for the given team.
 java.util.List<Team> getTeams()
          Returns the list of teams in the system.
 java.util.List<Team> getTeamsForProduct(java.lang.Long productId)
          Returns the teams associated with the given product.
 Theme getThemeById(java.lang.Long themeId)
          Gets the theme with the given ID.
 java.util.List<Theme> getThemesForProduct(java.lang.Long productId)
          Finds all the themes which may be assigned to the backlog items in a particular product.
 java.util.List<Theme> getThemesForProgram(java.lang.Long programId)
          Finds the themes for a program.
 java.lang.String getTimezone()
          Gets the ID of the time zone the server is in.
 UncategorizedBudget getUncategorizedBudgetForReleaseInProduct(java.lang.Long releaseId, java.lang.Long productId)
          Gets the uncategorized budget for the given release within the given product.
 java.util.List<UncategorizedBudget> getUncategorizedBudgetsForRelease(java.lang.Long releaseId)
          Lists all uncategorized budgets for the given program release, or the single uncategorized budget for a product release.
 User getUserByUserName(java.lang.String userName)
          Gets an user identified by login name.
 AggregateUserProductAccessData getUserRoles(java.lang.Long userId)
          Gets all product roles for a user.
 java.util.List<User> getUsers()
          Returns the list of users in the system.
 java.util.List<java.lang.String> getUsersForSprint(java.lang.Long sprintId)
          Returns the list of all user names with timesheet entries for all tasks within the given sprint and all user names for the current team members of the given sprint.
 java.lang.String getVersion()
          Returns the Version number of this server.
 void mergeThemes(java.lang.Long themeToMerge, java.lang.Long themeToMergeInto)
          Merges a theme into another one.
 java.util.List<BacklogItem> moveBacklogItemsAfter(java.util.List<java.lang.Long> itemsToMove, java.lang.Long itemBefore)
          Moves a set of backlog items after a backlog item.
 java.util.List<BacklogItem> moveBacklogItemsIntoKanbanTeam(java.util.List<java.lang.Long> itemsToMove, java.lang.Long teamId, java.lang.Long productId)
          Moves a set of backlog items into a kanban team.
 java.util.List<BacklogItem> moveBacklogItemsIntoReleaseAndProduct(java.util.List<java.lang.Long> itemsToMove, java.lang.Long releaseId, java.lang.Long productId)
          Moves a set of backlog items into a program or product release in a product.
 java.util.List<BacklogItem> moveBacklogItemsIntoSprint(java.util.List<java.lang.Long> itemsToMove, java.lang.Long sprintId)
          Moves a set of backlog items into a sprint.
 BacklogItemStatus moveCustomBacklogItemStatusAfter(java.lang.Long statusIdToMove, java.lang.Long statusIdBefore)
          Moves a custom backlog item status after the status provided.
 BacklogItemStatus moveCustomBacklogItemStatusBefore(java.lang.Long statusIdToMove, java.lang.Long statusIdAfter)
          Moves a custom backlog item status before the status provided.
 void moveReleaseAfterInProduct(java.lang.Long releaseToMove, java.lang.Long releaseAbove, java.lang.Long productId)
          Moves a product or program release after another product or program release within the given the product.
 void moveReleaseBeforeInProduct(java.lang.Long releaseToMove, java.lang.Long releaseBelow, java.lang.Long productId)
          Moves a product or program release before another product or program release within the given product.
 java.util.List<Task> moveTasksAfter(java.util.List<java.lang.Long> itemsToMove, java.lang.Long taskAbove)
          Moves tasks after another task in the backlog.
 java.util.List<Task> moveTasksIntoBacklogItem(java.util.List<java.lang.Long> itemsToMove, java.lang.Long backlogItemId)
          Moves a set of tasks into a backlog item.
 void removeTeamsForProduct(java.lang.Long productId, java.util.List<java.lang.Long> teamIds)
          Removes an existing team from the product, support both sprint and kanban teams.
 void removeThemeFromBacklogItems(java.util.List<java.lang.Long> backlogItems, java.lang.Long themeId)
          Removes the theme from the backlog items.
 void removeUsersFromTeam(java.lang.Long teamId, java.util.List<java.lang.Long> userIds)
          Removes the users from the given team.
 Theme renameTheme(java.lang.Long themeId, java.lang.String newName)
          Renames a theme.
 void setAsProductAdmin(java.lang.Long productId, java.lang.Long userId, java.lang.Boolean isProductAdmin)
          Sets user as a product administrator in the product.
 void syncLdapUsers()
          Synchronizes the ScrumWorks users group configured in LDAP .
 BacklogItem updateBacklogItem(BacklogItem backlogItem)
          Updates an existing backlog item.
 BacklogItemStatus updateCustomBacklogItemStatus(java.lang.Long productId, java.lang.Long statusId, java.lang.String name)
          Updates a custom backlogitem status for a product.
 void updateHoursSpentOnTask(java.lang.Long userId, java.lang.Long taskId, java.util.Date date, double hoursSpent)
          Update the task hours spent for the given user on the given date.
 Impediment updateImpediment(Impediment impediment)
          Updates an existing impediment.
 Product updateProduct(java.lang.Long productId, ProductProperties productProperties)
          Updates a product.
 ProductRole updateProductRole(java.lang.Long productRoleId, java.lang.String name, java.lang.String description, java.util.List<java.lang.Integer> permissionIds)
          Updates the name, description and list of permissions for a product role.
 Release updateRelease(Release release)
          Updates an existing release.
 Sprint updateSprint(Sprint sprint)
          Updates an existing sprint.
 Task updateTask(Task task)
          Updates an existing task.
 Task updateTaskEstimate(java.lang.Long taskId, java.util.Date date, int estimate)
          Updates a task's estimate for the given day.
 void updateUserRoles(java.lang.Long userId, java.util.List<java.lang.Long> productRoleIds)
          Updates product roles for a user.
 

Method Detail

getChangesSinceRevision

AggregateVersionedData getChangesSinceRevision(java.lang.Long productId,
                                               int revision)
                                               throws com.danube.scrumworks.exception.ServerException

Gets the items that have changed, including ones that were deleted, since the given revision.

When a backlog item or task is moved to a different product, the change appears in the old product. The item/task shows up in the change list for the old product with its new product ID. The item/task will also, of course appear in the list of changes for the new product.

When this method is called with revision equal to zero this method forwards to getCurrentState(Long).

Parameters:
productId - the ID of the Product for which to find changes
revision - the revision to fetch items newer than
Returns:
the changes to each item since the given version
Throws:
com.danube.scrumworks.exception.ServerException - if an error occurs finding changes or the argument is negative

getChangesSinceRevisionForTypes

AggregateVersionedData getChangesSinceRevisionForTypes(java.lang.Long productId,
                                                       int revision,
                                                       FilterChangesByType types)
                                                       throws com.danube.scrumworks.exception.ServerException

Gets the items that have changed, including ones that were deleted, since the given revision. The results are restricted by type, so only items of specified types are retrieved.

When a backlog item or task is moved to a different product, the change appears in the old product. The item/task shows up in the change list for the old product with its new product ID. The item/task will also, of course appear in the list of changes for the new product.

Parameters:
productId - the ID of the Product for which to find changes
revision - the revision to fetch items newer than
types - indicates which types of item should be included
Returns:
the changes to each item since the given version
Throws:
com.danube.scrumworks.exception.ServerException - if an error occurs finding changes or the argument is negative

getChangesSinceRevisionForIds

AggregateVersionedData getChangesSinceRevisionForIds(int revision,
                                                     boolean includeDeltas,
                                                     FilterChangesById ids)
                                                     throws com.danube.scrumworks.exception.ServerException
Gets the items that have changed, including ones that were deleted, since the given revision. The results are restricted by ID, so only specific items are returned. Since Epic IDs are non-unique, this method can't be used to filter for theme or Epic IDs.

Parameters:
revision - the revision to fetch items newer than
includeDeltas - true if all incremental changes should be included
ids - indicates which items should be included
Returns:
the changes to each item since the given version. No themes or epics will be returned.
Throws:
com.danube.scrumworks.exception.ServerException - if an error occurs finding changes or the argument is negative

getCurrentState

AggregateVersionedData getCurrentState(java.lang.Long productId)
                                       throws com.danube.scrumworks.exception.ServerException
Gets the most recent version of all items within the given product. This method is equivalent to calling getChangesSinceRevisionForTypes(Long, int, FilterChangesByType) with revision set to 0, and a type filter that excludes backlog items and tasks. Backlog items and tasks are retrieved separately in a more efficient manner, and are added into the returned result using the revision info obtained by calling getCurrentRevisionInfo(). Backlog items and tasks will not include any deleted entities, but all other entity types may.

Parameters:
productId - the ID of the product for which to get the current state.
Returns:
the current version of all items within the given product.
Throws:
com.danube.scrumworks.exception.ServerException - if an error occurs getting the items.

getCurrentRevisionInfo

RevisionInfo getCurrentRevisionInfo()
                                    throws com.danube.scrumworks.exception.ServerException
Gets the current revision information.

Returns:
the current revision information.
Throws:
com.danube.scrumworks.exception.ServerException - if an error occurs getting the current revision.

getTimezone

java.lang.String getTimezone()
Gets the ID of the time zone the server is in.

Returns:
the ID of the server's time zone.

getVersion

java.lang.String getVersion()
Returns the Version number of this server.

Returns:
the ScrumWorks Pro Server version number.

getPrograms

java.util.List<Program> getPrograms()
                                    throws com.danube.scrumworks.exception.ServerException
Returns all the programs in ScrumWorks.

Returns:
all the programs.
Throws:
com.danube.scrumworks.exception.ServerException - if there is an error retrieving a program.

getProgramById

Program getProgramById(java.lang.Long programId)
                       throws com.danube.scrumworks.exception.ServerException
Returns the program with the given id.

Parameters:
programId - the id of the program to return
Returns:
the program with the id
Throws:
com.danube.scrumworks.exception.ServerException - if the argument is not a valid program id.

getReleasesForProduct

java.util.List<Release> getReleasesForProduct(java.lang.Long productId)
                                              throws com.danube.scrumworks.exception.ServerException
Returns the releases associated with the given product in the order they appear in the product backlog.

Parameters:
productId - the product id
Returns:
the releases in the product in the order they appear in the product backlog
Throws:
com.danube.scrumworks.exception.ServerException - if the argument is not a valid product id.

getReleasesForProgram

java.util.List<Release> getReleasesForProgram(java.lang.Long programId)
                                              throws com.danube.scrumworks.exception.ServerException
Lists the program's releases in the order they appear in the program release planner.

Parameters:
programId - the id of the program
Returns:
the releases in the program in the order they appear in the program release planner.
Throws:
com.danube.scrumworks.exception.ServerException - if the argument is not an existing program.

getEpicsForRelease

java.util.List<Epic> getEpicsForRelease(java.lang.Long releaseId)
                                        throws com.danube.scrumworks.exception.ServerException
Lists Product Epics for the given Product Release, or list Program Epics for the given Program Release.

Parameters:
releaseId - The Product or Program Release to get the Epics for.
Returns:
The Product or Program Epics for the given release, or null if none exist, ordered by rank.
Throws:
com.danube.scrumworks.exception.ServerException - if there is an error loading the Epics.
java.lang.IllegalArgumentException - if the release is invalid or null.

getEpicsForReleaseInProduct

java.util.List<Epic> getEpicsForReleaseInProduct(java.lang.Long releaseId,
                                                 java.lang.Long productId)
                                                 throws com.danube.scrumworks.exception.ServerException
Lists epics for the given product or program release within the given product. if a product release is given this method acts the same as calling getEpicsForRelease(Long).

Parameters:
releaseId - the product or program release to get the epics for.
productId - the product containing the given release.
Returns:
the epics for the given release, or null if none exist, ordered by rank.
Throws:
com.danube.scrumworks.exception.ServerException - if there is an error loading the epics.
java.lang.IllegalArgumentException - the release is invalid or inconsistent with the product or if an argument is null

getProductEpicsForEpic

java.util.List<Epic> getProductEpicsForEpic(Epic epic)
                                            throws com.danube.scrumworks.exception.ServerException
When provided with a program epic, returns all the product epics using that program epic. when provided with a product epic, returns the original epic.

Parameters:
epic - the epic to search for.
Returns:
all product epics using the given epic, or null if none exist.
Throws:
com.danube.scrumworks.exception.ServerException - if the argument is null or there is an error assembling the data.

getCommentsForBacklogItem

java.util.List<Comment> getCommentsForBacklogItem(java.lang.Long backlogItemId)
                                                  throws com.danube.scrumworks.exception.ServerException
Lists comments for a particular backlog item.

Parameters:
backlogItemId - the backlog item to list comments of
Returns:
the comments in chronological order (oldest first)
Throws:
com.danube.scrumworks.exception.ServerException - if the argument is null or there is an error finding the comments

getCommentsForTask

java.util.List<Comment> getCommentsForTask(java.lang.Long taskId)
                                           throws com.danube.scrumworks.exception.ServerException
Lists comments for a particular task.

Parameters:
taskId - the task to list comments of.
Returns:
the comments in chronological order (oldest first)
Throws:
com.danube.scrumworks.exception.ServerException - if the argument is null or there is an error finding the comments

createCommentForBacklogItem

Comment createCommentForBacklogItem(java.lang.Long backlogItemId,
                                    java.lang.String comment)
                                    throws com.danube.scrumworks.exception.ServerException
Creates a comment for the given backlog item. The comment is attributed to the current user.

Parameters:
backlogItemId - The backlog item the comment is for
comment - the text of the comment
Returns:
the comment that was created
Throws:
com.danube.scrumworks.exception.ServerException - if any argument is null or there is an error creating the comment

createCommentForTask

Comment createCommentForTask(java.lang.Long taskId,
                             java.lang.String comment)
                             throws com.danube.scrumworks.exception.ServerException
Creates a comment for the given task. The comment is attributed to the current user.

Parameters:
taskId - identifies the task the comment is for
comment - the text of the comment
Returns:
the comment that was created
Throws:
com.danube.scrumworks.exception.ServerException - if an argument is null or there is an error creating the comment

getTasksForProduct

java.util.List<Task> getTasksForProduct(java.lang.Long productId)
                                        throws com.danube.scrumworks.exception.ServerException
Get all tasks in active backlog items for a product.

Parameters:
productId - the product
Returns:
the tasks in active backlog items in the product.
Throws:
com.danube.scrumworks.exception.ServerException - if an argument is null or there is an error finding the tasks

getProducts

java.util.List<Product> getProducts()
                                    throws com.danube.scrumworks.exception.ServerException
Returns:
all the products
Throws:
com.danube.scrumworks.exception.ServerException - if an error occurs

getProductByName

Product getProductByName(java.lang.String productName)
                         throws com.danube.scrumworks.exception.ServerException
Finds a product by name.

Parameters:
productName - the name of the product.
Returns:
the product with the given name.
Throws:
com.danube.scrumworks.exception.ServerException - if the argument is null, there is no product with the name provided, or there is an error loading the product.

getProductById

Product getProductById(java.lang.Long productId)
                       throws com.danube.scrumworks.exception.ServerException
Finds a product by its ID.

Parameters:
productId - the ID of the product to find
Returns:
the product
Throws:
com.danube.scrumworks.exception.ServerException - if the argument is null, or the product can't be found

getTeamsForProduct

java.util.List<Team> getTeamsForProduct(java.lang.Long productId)
                                        throws com.danube.scrumworks.exception.ServerException
Returns the teams associated with the given product.

Parameters:
productId - the product id
Returns:
the teams associated with the product.
Throws:
com.danube.scrumworks.exception.ServerException - if the argument is null, there is no product with the id.

getBacklogItemById

BacklogItem getBacklogItemById(java.lang.Long backlogItemId)
                               throws com.danube.scrumworks.exception.ServerException
Finds a backlog item identified by by ID.

Parameters:
backlogItemId - the id
Returns:
the requested backlog item
Throws:
com.danube.scrumworks.exception.ServerException - if the argument is null or there is no backlog item with the ID provided.

getBacklogItemByKey

BacklogItem getBacklogItemByKey(java.lang.String backlogItemKey)
                                throws com.danube.scrumworks.exception.ServerException
Finds a backlog item identified by key.

Parameters:
backlogItemKey - the key of the backlog item
Returns:
the backlog item with the given key
Throws:
com.danube.scrumworks.exception.ServerException - if the argument is null or there is no backlog item matching it.

getBacklogItemsByIds

java.util.List<BacklogItem> getBacklogItemsByIds(java.util.List<java.lang.Long> backlogItemIds)
                                                 throws com.danube.scrumworks.exception.ServerException
Finds multiple backlog items identified by ID. Items which are not found are omitted from the result (no exception is thrown in this case).

Parameters:
backlogItemIds - the backlog item IDs
Returns:
the backlog items with the given IDs
Throws:
com.danube.scrumworks.exception.ServerException - if an ID is null or there is an error finding the items.

getBacklogItemsInProduct

java.util.List<BacklogItem> getBacklogItemsInProduct(java.lang.Long productId,
                                                     boolean includeInactive)
                                                     throws com.danube.scrumworks.exception.ServerException
Returns a list of the backlog items in the product.

Parameters:
productId - the product id
includeInactive - whether to include inactive backlog items
Returns:
the backlog items in product
Throws:
com.danube.scrumworks.exception.ServerException - the server exception
See Also:
Delete Backlog Item

getBacklogItemsInRelease

java.util.List<BacklogItem> getBacklogItemsInRelease(java.lang.Long releaseId,
                                                     boolean includeInactive)
                                                     throws com.danube.scrumworks.exception.ServerException
Returns a list of backlog items for a given release. If the argument is a program release, this method will return all the backlog items for the program release from all the products the release is in.

Parameters:
releaseId - the release id
includeInactive - whether to include inactive backlog items
Returns:
the backlog items in release
Throws:
com.danube.scrumworks.exception.ServerException - the server exception

getBacklogItemsForReleaseInProduct

java.util.List<BacklogItem> getBacklogItemsForReleaseInProduct(java.lang.Long releaseId,
                                                               java.lang.Long productId,
                                                               boolean includeInactive)
                                                               throws com.danube.scrumworks.exception.ServerException
Returns a list of backlog items for a given release in a product.

Parameters:
releaseId - the release
productId - the product
includeInactive - whether to include inactive backlog items
Returns:
the backlog items in the release in the product.
Throws:
com.danube.scrumworks.exception.ServerException - if an argument doesn't represent an existing object in ScrumWorks or if the release is not in the product.

getBacklogItemsForSprint

java.util.List<BacklogItem> getBacklogItemsForSprint(java.lang.Long sprintId,
                                                     boolean includeInactive)
                                                     throws com.danube.scrumworks.exception.ServerException
Returns a list of backlog items for a given sprint, in the same order as they appear in the backlog scheduler.

Parameters:
sprintId - the id of the sprint.
includeInactive - whether to include inactive backlog items
Returns:
the backlog items committed to the sprint.
Throws:
com.danube.scrumworks.exception.ServerException - if the argument is null or not valid backlog sprint id, or there is a problem listing the backlog items.

getBacklogItemsForKanbanTeam

java.util.List<BacklogItem> getBacklogItemsForKanbanTeam(java.lang.Long teamId,
                                                         java.lang.Long productId,
                                                         boolean includeInactive)
                                                         throws com.danube.scrumworks.exception.ServerException
Returns a list of backlog items for a given kanban team, in the same order as they appear in the backlog scheduler.

Parameters:
teamId - the id of the sprint.
productId - the product for which the backlog items needs to be fetched.
includeInactive - whether to include inactive backlog items
Returns:
the backlog items committed to the kanban team.
Throws:
com.danube.scrumworks.exception.ServerException - if the argument is null or not valid team id, or there is a problem listing the backlog items.

createTeam

Team createTeam(Team team,
                java.util.List<java.lang.Long> userIds)
                throws com.danube.scrumworks.exception.ServerException
Creates a Team with the set of userIds given and returns the created Team.

Parameters:
team - the team to be created.
userIds - the list of users to be added into the team
Returns:
Team the created team
Throws:
com.danube.scrumworks.exception.ServerException - if any error occurs

deleteTeam

void deleteTeam(java.lang.Long teamId)
                throws com.danube.scrumworks.exception.ServerException
Deletes the Team with the given id.

Parameters:
teamId - the team that needs to be deleted.
Throws:
com.danube.scrumworks.exception.ServerException - if the team doesn't exists or if any error occured while deleting the team.

getBacklogItemEstimates

java.util.List<Estimate> getBacklogItemEstimates(java.lang.Long backlogItemId)
                                                 throws com.danube.scrumworks.exception.ServerException
Gets the list of backlog item estimates for a given backlog item.

Parameters:
backlogItemId - the id of the backlog item
Returns:
a chronological list of backlog item estimates
Throws:
com.danube.scrumworks.exception.ServerException - if the argument is null or not valid backlog item id.

getImpediments

java.util.List<Impediment> getImpediments(java.lang.Long productId)
                                          throws com.danube.scrumworks.exception.ServerException
Gets the impediments for a given product.

Parameters:
productId - the product id
Returns:
the impediments in the product
Throws:
com.danube.scrumworks.exception.ServerException - if the argument is not a valid product id or there is an error loading the impediments.

getImpedimentById

Impediment getImpedimentById(java.lang.Long impedimentId)
                             throws com.danube.scrumworks.exception.ServerException
Finds an impediment by id.

Parameters:
impedimentId - identifies the requested impediment.
Returns:
the requested impediment.
Throws:
com.danube.scrumworks.exception.ServerException - if the argument is not a valid impediment ID or there is an error loading the impediment.

getSprintsForProduct

java.util.List<Sprint> getSprintsForProduct(java.lang.Long productId)
                                            throws com.danube.scrumworks.exception.ServerException
Returns the list of sprints for the given product. Deleted sprints are not included.

Parameters:
productId - the product id
Returns:
the sprint in the product, sorted by their dates
Throws:
com.danube.scrumworks.exception.ServerException - if the argument is not a valid product id or if there is a server error.

getSprintById

Sprint getSprintById(java.lang.Long sprintId)
                     throws com.danube.scrumworks.exception.ServerException
Gets the sprint with the given ID.

Parameters:
sprintId - the ID of the sprint to find
Returns:
the sprint
Throws:
com.danube.scrumworks.exception.ServerException - if the argument is null or the sprint can't be found

getSprintsInProductForTeam

java.util.List<Sprint> getSprintsInProductForTeam(java.lang.Long productId,
                                                  java.lang.Long teamId)
                                                  throws com.danube.scrumworks.exception.ServerException
Returns the list of sprints in the given product assigned to the team. Deleted sprints are not included.

Parameters:
productId - the product id
teamId - the team id
Returns:
the sprints in the product assigned to the team, sorted by their dates
Throws:
com.danube.scrumworks.exception.ServerException - if the arguments are not valid id's or if there is a server error.

getTasks

java.util.List<Task> getTasks(java.lang.Long backlogItemId)
                              throws com.danube.scrumworks.exception.ServerException
Returns the tasks for the given backlog item.

Parameters:
backlogItemId - the id of the backlog item
Returns:
the sorted (as displayed in the desktop client) tasks
Throws:
com.danube.scrumworks.exception.ServerException - if the argument is not a valid backlog item id or if there is a server error.

getTaskStatuses

java.util.List<java.lang.String> getTaskStatuses()
Returns the available task status names.

Returns:
the available task status names.

getTaskById

Task getTaskById(java.lang.Long taskId)
                 throws com.danube.scrumworks.exception.ServerException
Returns the task with the given id.

Parameters:
taskId - identifies a task.
Returns:
the requested task, or null if the task is not found.
Throws:
com.danube.scrumworks.exception.ServerException - if the argument is null or there is an error retrieving the requested task.

getTasksForSprint

java.util.List<Task> getTasksForSprint(java.lang.Long sprintId)
                                       throws com.danube.scrumworks.exception.ServerException
Returns the list of tasks for the given sprint ordered by backlog item rank then task rank.

Parameters:
sprintId - the id of the sprint
Returns:
The tasks in the sprint
Throws:
com.danube.scrumworks.exception.ServerException - if the argument is not a valid sprint id or if there is a server error.

getTasksForKanbanTeam

java.util.List<Task> getTasksForKanbanTeam(java.lang.Long teamId,
                                           java.lang.Long productId)
                                           throws com.danube.scrumworks.exception.ServerException
Returns the list of tasks for the given kanban team in the product. ordered by backlog item rank then task rank.

Parameters:
teamId - the id of the kanban team
productId - the product to fetch tasks
Returns:
The tasks in the backlog items of the team
Throws:
com.danube.scrumworks.exception.ServerException - if the argument is not a valid kanban team id or if there is a server error.

getUsers

java.util.List<User> getUsers()
                              throws com.danube.scrumworks.exception.ServerException
Returns the list of users in the system. Does not include the Administrator user.

Returns:
the users
Throws:
com.danube.scrumworks.exception.ServerException - if there is a server error.

addUsersToTeam

void addUsersToTeam(java.lang.Long teamId,
                    java.util.List<java.lang.Long> userIds)
                    throws com.danube.scrumworks.exception.ServerException
Adds the users given to the team. Can not add an administrator user to a team. If any user id does not exist, an error message is thrown and no users in the list will be added.

Parameters:
teamId - the team to which users will be added.
userIds - the users to add.
Throws:
com.danube.scrumworks.exception.ServerException - if there is any exception in adding users to the team.

removeUsersFromTeam

void removeUsersFromTeam(java.lang.Long teamId,
                         java.util.List<java.lang.Long> userIds)
                         throws com.danube.scrumworks.exception.ServerException
Removes the users from the given team. Can not add an administrator user to a team. If any user id does not exist, an error message is thrown and no users in the list will be removed. If any user does not belong to the team, error message is thrown.

Parameters:
teamId - the team to which users will be added.
userIds - the users to add.
Throws:
com.danube.scrumworks.exception.ServerException - if there is any exception in adding users to the team.

getUsersForSprint

java.util.List<java.lang.String> getUsersForSprint(java.lang.Long sprintId)
                                                   throws com.danube.scrumworks.exception.ServerException
Returns the list of all user names with timesheet entries for all tasks within the given sprint and all user names for the current team members of the given sprint. Timesheet entries for user names that have been removed from the system are included.

Parameters:
sprintId - the id of the sprint
Returns:
The user names
Throws:
com.danube.scrumworks.exception.ServerException - if the sprint id is not valid or there is a server error.

getUserByUserName

User getUserByUserName(java.lang.String userName)
                       throws com.danube.scrumworks.exception.ServerException
Gets an user identified by login name.

Parameters:
userName - uniquely identifies the user.
Returns:
the requested user.
Throws:
com.danube.scrumworks.exception.ServerException - if the user is not found.

getTeamById

Team getTeamById(java.lang.Long teamId)
                 throws com.danube.scrumworks.exception.ServerException
Gets the team by id.

Parameters:
teamId - the team id
Returns:
the team that has the given id.
Throws:
com.danube.scrumworks.exception.ServerException - if the team id is not valid or there is a server error.

getTeams

java.util.List<Team> getTeams()
                              throws com.danube.scrumworks.exception.ServerException
Returns the list of teams in the system.

Returns:
the teams
Throws:
com.danube.scrumworks.exception.ServerException - if there is a server error.

getTeamMembers

java.util.List<User> getTeamMembers(java.lang.Long teamId)
                                    throws com.danube.scrumworks.exception.ServerException
Returns the list of team members for the given team.

Parameters:
teamId - the team id
Returns:
the team members of the team
Throws:
com.danube.scrumworks.exception.ServerException - if the team id is not valid or there is a server error.

getTaskEstimates

java.util.List<Estimate> getTaskEstimates(java.lang.Long taskId)
                                          throws com.danube.scrumworks.exception.ServerException
Returns the task estimates for the given task in chronological order.

Parameters:
taskId - the task id
Returns:
the task estimates for the task
Throws:
com.danube.scrumworks.exception.ServerException - if the task id is not valid or there is a server error.

updateTaskEstimate

Task updateTaskEstimate(java.lang.Long taskId,
                        java.util.Date date,
                        int estimate)
                        throws com.danube.scrumworks.exception.ServerException
Updates a task's estimate for the given day.

Parameters:
taskId - the id of the task to update
date - the estimate date. The time part of the object is not used to set the estimate (there's at most one estimate for a task for a day).
estimate - a non-negative integer.
Returns:
The updated task.
Throws:
com.danube.scrumworks.exception.ServerException - If the estimate is invalid or an argument is null
See Also:
deleteTaskEstimate(Long, Date)

deleteTaskEstimate

Task deleteTaskEstimate(java.lang.Long taskId,
                        java.util.Date date)
                        throws com.danube.scrumworks.exception.ServerException
Removes a task's estimate for the given day.

Parameters:
taskId - the id of the task
date - the date to remove the estimate from
Returns:
The updated task.
Throws:
com.danube.scrumworks.exception.ServerException - If the only estimate for the task is attempted to be deleted.

createBacklogItem

BacklogItem createBacklogItem(BacklogItem backlogItem)
                              throws com.danube.scrumworks.exception.ServerException
Creates a backlog item. The newly created backlog item is placed at the bottom of its release.

Parameters:
backlogItem - the backlog item to create.
Returns:
The created backlog item.
Throws:
com.danube.scrumworks.exception.ServerException - the server exception

updateBacklogItem

BacklogItem updateBacklogItem(BacklogItem backlogItem)
                              throws com.danube.scrumworks.exception.ServerException
Updates an existing backlog item. A ServerException is thrown if the Global administrator or Product Administrator or Edit Product Backlog Item permission is not present.

Parameters:
backlogItem - the backlog item
Returns:
The updated backlog item.
Throws:
com.danube.scrumworks.exception.ServerException - the server exception

updateTask

Task updateTask(Task task)
                throws com.danube.scrumworks.exception.ServerException
Updates an existing task. Note: to move the task it's recommended to use the moveTask* methods instead of updating its rank or backlogItemId fields.

Parameters:
task - the task to update.
Returns:
The updated task.
Throws:
com.danube.scrumworks.exception.ServerException - if the task is not valid or there is an error updating the task

createTask

Task createTask(Task task)
                throws com.danube.scrumworks.exception.ServerException
Creates a task. The task will be the first task in its backlog item.

Parameters:
task - the task to create
Returns:
The task created on the server.
Throws:
com.danube.scrumworks.exception.ServerException - the server exception

moveTasksAfter

java.util.List<Task> moveTasksAfter(java.util.List<java.lang.Long> itemsToMove,
                                    java.lang.Long taskAbove)
                                    throws com.danube.scrumworks.exception.ServerException
Moves tasks after another task in the backlog. After the moving the tasks will be in the same order in the backlog as they are in the array itemsToMove. The tasks to move aren't required to have the same parent.

Parameters:
itemsToMove - the id's of the tasks to move
taskAbove - the task to move the items below. May be null
Returns:
The objects which reflect the state of the moved tasks after the moving.
Throws:
com.danube.scrumworks.exception.ServerException - if an error occurs

moveTasksIntoBacklogItem

java.util.List<Task> moveTasksIntoBacklogItem(java.util.List<java.lang.Long> itemsToMove,
                                              java.lang.Long backlogItemId)
                                              throws com.danube.scrumworks.exception.ServerException
Moves a set of tasks into a backlog item. The tasks will be the bottom-most tasks in the backlog item. After the move, tasks will be in the same order in the backlog as they are in the array itemsToMove. The tasks to move aren't required to have the same parent.

Parameters:
itemsToMove - the id's of the tasks to move
backlogItemId - the id of the target backlog item
Returns:
The objects which reflect the state of the moved tasks after the moving.
Throws:
com.danube.scrumworks.exception.ServerException - if the id's are not valid or if there is a server error moving the tasks.

deleteTask

void deleteTask(java.lang.Long taskId)
                throws com.danube.scrumworks.exception.ServerException
Deletes a task from the backlog.

Parameters:
taskId - the task id
Throws:
com.danube.scrumworks.exception.ServerException - if the task doesn't exist in the database or there's a server error deleting the task.

deleteBacklogItem

void deleteBacklogItem(java.lang.Long backlogItemId,
                       boolean keepHistory)
                       throws com.danube.scrumworks.exception.ServerException
Deletes a backlog item from the backlog along with its estimates. The difference between this method and markBacklogItemInactive is that the latter will preserve the historical information (estimates) about the backlog item which will show up in various reports/charts. A ServerException is thrown if the Global administrator or Product Administrator or Delete Product Backlog Item permission is not present.

Parameters:
backlogItemId - the backlog item id
keepHistory - whether to keep the estimate and parent history of the backlog item
Throws:
com.danube.scrumworks.exception.ServerException - if the id is not valid or if there's a server error deleting the backlog item.
See Also:
Delete Backlog Item

moveBacklogItemsAfter

java.util.List<BacklogItem> moveBacklogItemsAfter(java.util.List<java.lang.Long> itemsToMove,
                                                  java.lang.Long itemBefore)
                                                  throws com.danube.scrumworks.exception.ServerException
Moves a set of backlog items after a backlog item. After the moving the backlog items will be in the same order in the backlog as they are in the array itemsToMove. The backlog items to move aren't required to have the same parent.

Parameters:
itemsToMove - the id's of the backlog items to move
itemBefore - the id backlog item to move the items after
Returns:
the objects which reflect the state of the moved backlog items after the moving.
Throws:
com.danube.scrumworks.exception.ServerException - if a backlog item isn't valid or if there is a server error.

moveBacklogItemsIntoSprint

java.util.List<BacklogItem> moveBacklogItemsIntoSprint(java.util.List<java.lang.Long> itemsToMove,
                                                       java.lang.Long sprintId)
                                                       throws com.danube.scrumworks.exception.ServerException
Moves a set of backlog items into a sprint. The backlog items will become the top priority backlog items in the sprint. After moving the backlog items, they will be in the same order in the backlog as they are in the array itemsToMove. The backlog items to move aren't required to have the same parent.

Parameters:
itemsToMove - the id's of the backlog items to move
sprintId - the ID of the sprint to move the items into
Returns:
the objects which reflect the state of the moved backlog items after the moving.
Throws:
com.danube.scrumworks.exception.ServerException - if an error occurs

moveBacklogItemsIntoKanbanTeam

java.util.List<BacklogItem> moveBacklogItemsIntoKanbanTeam(java.util.List<java.lang.Long> itemsToMove,
                                                           java.lang.Long teamId,
                                                           java.lang.Long productId)
                                                           throws com.danube.scrumworks.exception.ServerException
Moves a set of backlog items into a kanban team. The backlog items will become the top priority backlog items in the team. After moving the backlog items, they will be in the same order in the backlog as they are in the array itemsToMove and will be defaulted to In Progress state. The backlog items to move aren't required to have the same parent.

Parameters:
itemsToMove - the id's of the backlog items to move.
teamId - the ID of the team to move the items into.
productId - the ID of the product with which the team is associated.
Returns:
the objects which reflect the state of the moved backlog items after the moving.
Throws:
com.danube.scrumworks.exception.ServerException - if an error occurs

moveBacklogItemsIntoReleaseAndProduct

java.util.List<BacklogItem> moveBacklogItemsIntoReleaseAndProduct(java.util.List<java.lang.Long> itemsToMove,
                                                                  java.lang.Long releaseId,
                                                                  java.lang.Long productId)
                                                                  throws com.danube.scrumworks.exception.ServerException
Moves a set of backlog items into a program or product release in a product. The backlog items will become the top priority backlog items in the release. After moving the backlog items, they will be in the same order in the backlog as they are in the array itemsToMove. The backlog items to move aren't required to have the same parent. Backlog items in the source product will be deleted if the backlog items are moved between products.

Parameters:
itemsToMove - the id's of the backlog items to move
releaseId - identifies the release to move the backlog items into, must be a product release in the product or a program release which is included in the product.
productId - the product the release is in.
Returns:
The objects which reflect the state of the moved backlog items after moving.
Throws:
com.danube.scrumworks.exception.ServerException - if an error occurs

createRelease

Release createRelease(Release release)
                      throws com.danube.scrumworks.exception.ServerException
Creates a new release.

The start date and the release date should be specified or both left empty.

Either a product ID or a program ID (but not both) must be provided.

New release are ranked above all existing releases for that context (product or program). Use moveReleaseAfterInProduct(Long, Long, Long) and moveReleaseBeforeInProduct(Long, Long, Long) to re-rank releases.

Parameters:
release - provides information about the release to create
Returns:
the new release
Throws:
com.danube.scrumworks.exception.ServerException - if any of:
  • the argument is null
  • the release ID in release is non-null
  • exactly one of product ID or program ID is not specified
  • the "archived" flag is set in release.
  • an error occurs creating the release

moveReleaseBeforeInProduct

void moveReleaseBeforeInProduct(java.lang.Long releaseToMove,
                                java.lang.Long releaseBelow,
                                java.lang.Long productId)
                                throws com.danube.scrumworks.exception.ServerException
Moves a product or program release before another product or program release within the given product.

Parameters:
releaseToMove - the id of the release to move.
releaseBelow - the id of the release that will appear after the moved release.
productId - the product both releases belong to.
Throws:
com.danube.scrumworks.exception.ServerException - if there is an error moving the release, if the releases are in different products, or if a release's program does not have the given product association.

moveReleaseAfterInProduct

void moveReleaseAfterInProduct(java.lang.Long releaseToMove,
                               java.lang.Long releaseAbove,
                               java.lang.Long productId)
                               throws com.danube.scrumworks.exception.ServerException
Moves a product or program release after another product or program release within the given the product.

Parameters:
releaseToMove - the id of the release to move.
releaseAbove - the id of the release which should now be above this release.
productId - the product both releases belong to.
Throws:
com.danube.scrumworks.exception.ServerException - if there is an error moving the release, if the releases are in different products, or if a release's program does not have the given product association.

updateRelease

Release updateRelease(Release release)
                      throws com.danube.scrumworks.exception.ServerException
Updates an existing release. The start date and the release date should be specified or left empty together. Archived releases can not be modified.

Parameters:
release - the new data for a release.
Returns:
the updated release
Throws:
com.danube.scrumworks.exception.ServerException - if there is an error updating the release, the release is archived, or the argument is null.
See Also:
moveReleaseAfterInProduct(Long, Long, Long), moveReleaseBeforeInProduct(Long, Long, Long)

deleteEmptyRelease

void deleteEmptyRelease(java.lang.Long releaseId)
                        throws com.danube.scrumworks.exception.ServerException
Deletes an empty release. The last release in a product can not be deleted.

Parameters:
releaseId - the release id
Throws:
com.danube.scrumworks.exception.ServerException - if the release id is not valid or if there's an error deleting the release.

createSprint

Sprint createSprint(Sprint sprint)
                    throws com.danube.scrumworks.exception.ServerException
Creates a sprint. The sprint's teamId, productId and the sprint dates need to be set. The sprint's id needs to be left empty.

Parameters:
sprint - the sprint
Returns:
the created sprint
Throws:
com.danube.scrumworks.exception.ServerException - if the fields of the sprint are not valid or there's an error creating the sprint.

updateSprint

Sprint updateSprint(Sprint sprint)
                    throws com.danube.scrumworks.exception.ServerException
Updates an existing sprint.

Parameters:
sprint - the sprint to update
Returns:
the updated sprint
Throws:
com.danube.scrumworks.exception.ServerException - if the sprint's id is not specified, or the sprint is invalid

deleteEmptySprint

void deleteEmptySprint(java.lang.Long sprintId)
                       throws com.danube.scrumworks.exception.ServerException
Deletes an empty sprint.

Parameters:
sprintId - The id of the sprint to delete
Throws:
com.danube.scrumworks.exception.ServerException - If the sprint didn't exist or if it wasn't empty. Note: if the sprint contains inactive backlog items, it isn't empty.

getBacklogItemsForTheme

java.util.List<BacklogItem> getBacklogItemsForTheme(java.lang.Long themeId,
                                                    boolean includeInactive)
                                                    throws com.danube.scrumworks.exception.ServerException
Gets the backlog items tagged with the indicated theme.

Parameters:
themeId - identifies the theme to list the backlog items for
includeInactive - whether to include inactive backlog items in the result
Returns:
the backlog items in the given theme
Throws:
com.danube.scrumworks.exception.ServerException - if the theme ID is null, the theme doesn't exist, or an error occurs finding the items

getBacklogItemsForThemeInProduct

java.util.List<BacklogItem> getBacklogItemsForThemeInProduct(java.lang.Long themeId,
                                                             java.lang.Long productId,
                                                             boolean includeInactive)
                                                             throws com.danube.scrumworks.exception.ServerException
Gets the backlog items for a specified theme and product. For product themes, this method will return the same results as getBacklogItemsForTheme(Long, boolean), as long as the product matches the theme's product. For program themes, the results are restricted to one of the products in the program.

Parameters:
themeId - identifies the theme to list the backlog items for
productId - the product whose items should be returned.
includeInactive - whether to include inactive backlog items in the result
Returns:
the backlog items in the given theme in the given product.
Throws:
com.danube.scrumworks.exception.ServerException - if there is an error finding the item, an ID is null or the theme is a product theme but the product doesn't match the product provided.

getThemeById

Theme getThemeById(java.lang.Long themeId)
                   throws com.danube.scrumworks.exception.ServerException
Gets the theme with the given ID.

Parameters:
themeId - the ID of the theme to find
Returns:
the requested theme
Throws:
com.danube.scrumworks.exception.ServerException - if the argument is null or the theme can't be found

addThemeToBacklogItems

void addThemeToBacklogItems(java.util.List<java.lang.Long> backlogItems,
                            java.lang.Long themeId)
                            throws com.danube.scrumworks.exception.ServerException
Adds the backlog items to the theme.

Parameters:
backlogItems - the backlog items to add to the theme
themeId - identifies the theme
Throws:
com.danube.scrumworks.exception.ServerException - if an argument is null, a backlog item or theme is not found, or if a backlog item is not in a product that has the theme

removeThemeFromBacklogItems

void removeThemeFromBacklogItems(java.util.List<java.lang.Long> backlogItems,
                                 java.lang.Long themeId)
                                 throws com.danube.scrumworks.exception.ServerException
Removes the theme from the backlog items.

Parameters:
backlogItems - the backlog items to remove the theme from
themeId - identifies the theme to remove
Throws:
com.danube.scrumworks.exception.ServerException - if an argument is null or there is an error removing the theme

getUncategorizedBudgetForReleaseInProduct

UncategorizedBudget getUncategorizedBudgetForReleaseInProduct(java.lang.Long releaseId,
                                                              java.lang.Long productId)
                                                              throws com.danube.scrumworks.exception.ServerException
Gets the uncategorized budget for the given release within the given product. If a product release is given, this method acts the same as calling getUncategorizedBudgetsForRelease(Long).

Parameters:
releaseId - the id of the product or program release to get the budget(s) for.
productId - the id of the product containing the given product or program release.
Returns:
the uncategorized budget for the given release.
Throws:
com.danube.scrumworks.exception.ServerException - if there is an error loading the budget(s), if the release and product are inconsistent, or if an argument is null.

getUncategorizedBudgetsForRelease

java.util.List<UncategorizedBudget> getUncategorizedBudgetsForRelease(java.lang.Long releaseId)
                                                                      throws com.danube.scrumworks.exception.ServerException
Lists all uncategorized budgets for the given program release, or the single uncategorized budget for a product release. Given a program release, this method returns all uncategorized budgets for each product with that release. Given a product release, this method returns the single uncategorized budget for that release.

Parameters:
releaseId - the product or program release to get the budget(s) for.
Returns:
the uncategorized budget(s) for the given release.
Throws:
com.danube.scrumworks.exception.ServerException - if there is an error loading the budget(s) or if the release is invalid or null.

updateHoursSpentOnTask

void updateHoursSpentOnTask(java.lang.Long userId,
                            java.lang.Long taskId,
                            java.util.Date date,
                            double hoursSpent)
                            throws com.danube.scrumworks.exception.ServerException
Update the task hours spent for the given user on the given date.

Parameters:
userId - the id of the user that spent the hours.
taskId - the task id for which the hours were spent.
hoursSpent - a non-negative decimal value representing the hours spent.
date - the date on which the hours were spent.
Throws:
com.danube.scrumworks.exception.ServerException - if an error occurs, if an argument is null, or hoursSpent is negative.

getAllTaskHoursSpentOnTask

java.util.List<TaskHoursSpent> getAllTaskHoursSpentOnTask(java.lang.Long taskId)
                                                          throws com.danube.scrumworks.exception.ServerException
Returns the total hours spent by all users for the given task, ordered by date.

Parameters:
taskId - The ID of the task
Returns:
the total hours spent on a single task for all users, ordered by date. Each entry represents all the hours spent on the task on a single date.
Throws:
com.danube.scrumworks.exception.ServerException - if an error occurs
See Also:
getTasksForSprint(Long)

getTaskHoursSpentOnTaskByPerson

java.util.List<TaskHoursSpent> getTaskHoursSpentOnTaskByPerson(java.lang.Long taskId,
                                                               java.lang.String displayName)
                                                               throws com.danube.scrumworks.exception.ServerException
Returns the hours spent by a user on a single task, ordered by date.

Parameters:
taskId - The ID of the task
displayName - The display name of the user, as returned by getUsersForSprint(Long) or User.getDisplayName()
Returns:
the task hours spent on a single task for the given user, ordered by date
Throws:
com.danube.scrumworks.exception.ServerException - if an error occurs
See Also:
User.getDisplayName(), getUsersForSprint(Long), getTasksForSprint(Long)

getDashboardStatistics

java.util.List<DashboardReleaseStatistics> getDashboardStatistics(java.lang.Long productId,
                                                                  java.util.Date startDate,
                                                                  java.util.Date endDate)
                                                                  throws com.danube.scrumworks.exception.ServerException
Gets statistics about the releases within the given date range for a product.

Parameters:
productId - the ID of the product
startDate - the beginning date of the date range
endDate - the ending date of the date range
Returns:
the product statistics
Throws:
com.danube.scrumworks.exception.ServerException - if an error occurs
java.lang.IllegalArgumentException - if an argument is null.

createImpediment

Impediment createImpediment(Impediment impediment)
                            throws com.danube.scrumworks.exception.ServerException
Creates a new impediment. The following fields of the parameter impedimentsshould be empty: id, lastModDate, resolutionDate. These are set by the server.

Parameters:
impediment - the impediment to create
Returns:
the created impediment
Throws:
com.danube.scrumworks.exception.ServerException - if there is an error creating the impediment
java.lang.IllegalArgumentException - if an argument is null.

updateImpediment

Impediment updateImpediment(Impediment impediment)
                            throws com.danube.scrumworks.exception.ServerException
Updates an existing impediment. The following modifications are not allowed:
- Changing the last modification date of impediments, because it's set by the server automatically
- Changing the product id
- Changing the team id

Parameters:
impediment - the impediment to update
Returns:
the updated impediment
Throws:
com.danube.scrumworks.exception.ServerException - if there is an error updating the impediment
java.lang.IllegalArgumentException - if an argument is null.

getThemesForProduct

java.util.List<Theme> getThemesForProduct(java.lang.Long productId)
                                          throws com.danube.scrumworks.exception.ServerException
Finds all the themes which may be assigned to the backlog items in a particular product. This will include product themes and program themes for all the programs which contain this product.

Parameters:
productId - identifies the product
Returns:
the product and program themes associated with the given product
Throws:
com.danube.scrumworks.exception.ServerException - if the argument is null or an error occurs finding the themes

getThemesForProgram

java.util.List<Theme> getThemesForProgram(java.lang.Long programId)
                                          throws com.danube.scrumworks.exception.ServerException
Finds the themes for a program.

Parameters:
programId - the program whose theme's are to found.
Returns:
the program themes defined for the program.
Throws:
com.danube.scrumworks.exception.ServerException - if the program is null or has a null ID, or there is an error loading the program's themes.

createTheme

Theme createTheme(Theme theme)
                  throws com.danube.scrumworks.exception.ServerException
Creates a new theme.

Parameters:
theme - the theme to create.
Returns:
a new theme with the ID field set.
Throws:
com.danube.scrumworks.exception.ServerException - if the theme's ID is already set, the theme doesn't have exactly one of product/program ID set, the argument is null, or there is an error creating the new theme.

deleteTheme

void deleteTheme(java.lang.Long themeId)
                 throws com.danube.scrumworks.exception.ServerException
Deletes an existing theme. Has no effect if the theme doesn't exist.

Parameters:
themeId - identifies the theme to delete
Throws:
com.danube.scrumworks.exception.ServerException - if the argument is null or there is an error deleting the theme

renameTheme

Theme renameTheme(java.lang.Long themeId,
                  java.lang.String newName)
                  throws com.danube.scrumworks.exception.ServerException
Renames a theme.

Parameters:
themeId - identifies the existing theme you want to rename
newName - the new name of the theme
Returns:
A new WSO with the new name
Throws:
com.danube.scrumworks.exception.ServerException - if an argument is null or there is an error renaming the theme.

mergeThemes

void mergeThemes(java.lang.Long themeToMerge,
                 java.lang.Long themeToMergeInto)
                 throws com.danube.scrumworks.exception.ServerException
Merges a theme into another one. The backlog items which had the theme themeToMerge will have the theme themeToMergeInto added instead and themeToMerge is deleted. Both themes must be product themes in the same product. Merging of program themes or themes from different products is not supported.

Parameters:
themeToMerge - the existing theme you want to merge into another one
themeToMergeInto - the existing theme you want the other theme merge into
Throws:
com.danube.scrumworks.exception.ServerException - if an argument is null or there is an error merging the themes.

syncLdapUsers

void syncLdapUsers()
                   throws com.danube.scrumworks.exception.ServerException
Synchronizes the ScrumWorks users group configured in LDAP . This method forces a synchronization when called. Set 'scrumworksSyncEnabled' to false in 'login-config.xml' before calling syncLdapUsers(). 'scrumworksSyncEnabled' runs LDAP sync automatically at configured 'scrumWorksSyncInterval' timings. If 'scrumworksSyncEnabled' is enabled and syncLdapUsers() is invoked, results of LDAP synchronization may result in inconsistent data

Throws:
com.danube.scrumworks.exception.ServerException - if LDAP synchronization is unsuccessful

getProductRoles

AggregateProductRoleData getProductRoles(java.lang.Long productId)
                                         throws com.danube.scrumworks.exception.ServerException
Gets the product roles for a product id. If the product does not have any valid product roles, AggregateProductRoleData will have empty product roles.

Parameters:
productId - id for the product
Returns:
list of product roles sorted by name and a flag denoting if product permissions are enabled
Throws:
com.danube.scrumworks.exception.ServerException - if invalid or null product id or invoked by non global administrators

getAllPermissions

java.util.List<Permission> getAllPermissions()
                                             throws com.danube.scrumworks.exception.ServerException
Gets all available permissions.

Returns:
all permissions that exists in ScrumWorks sorted by name.
Throws:
com.danube.scrumworks.exception.ServerException - if there is an error in getting permissions.

updateProductRole

ProductRole updateProductRole(java.lang.Long productRoleId,
                              java.lang.String name,
                              java.lang.String description,
                              java.util.List<java.lang.Integer> permissionIds)
                              throws com.danube.scrumworks.exception.ServerException
Updates the name, description and list of permissions for a product role.

Parameters:
productRoleId - the id
name - the name
description - the description
permissionIds - the list of permissions to be associated with the product role
Returns:
the updated product role
Throws:
com.danube.scrumworks.exception.ServerException - if not called by global administrators or product administrator, invalid product role id, empty product role name, duplicate product role name, invalid permission ids, or missing permission dependencies

updateUserRoles

void updateUserRoles(java.lang.Long userId,
                     java.util.List<java.lang.Long> productRoleIds)
                     throws com.danube.scrumworks.exception.ServerException
Updates product roles for a user.

Parameters:
userId - id of the user
productRoleIds - product roles to be associated with the user
Throws:
com.danube.scrumworks.exception.ServerException - if not called by global administrators or if the user can not be found or if the product role can not be found.

createProduct

Product createProduct(ProductProperties productProperties)
                      throws com.danube.scrumworks.exception.ServerException
Creates a product with default backlog item statuses.

Parameters:
productProperties - product properties to create the product
Returns:
created product
Throws:
com.danube.scrumworks.exception.ServerException - if not called by global administrators or product name is empty or product name is not unique or product key prefix is empty or product key prefix is not unique

updateProduct

Product updateProduct(java.lang.Long productId,
                      ProductProperties productProperties)
                      throws com.danube.scrumworks.exception.ServerException
Updates a product.

Parameters:
productId - id of the product
productProperties - product properties to update the product
Returns:
updated product
Throws:
com.danube.scrumworks.exception.ServerException - if not called by global administrators or product admin or product id is invalid or product name is empty or product name is not unique or product key prefix is empty or product key prefix is not unique

deleteProduct

void deleteProduct(java.lang.Long productId)
                   throws com.danube.scrumworks.exception.ServerException
Deletes a product.

Parameters:
productId - id of the product
Throws:
com.danube.scrumworks.exception.ServerException - if not called by global administrators or product id is invalid

createProductRole

ProductRole createProductRole(java.lang.Long productId,
                              java.lang.String name,
                              java.lang.String description,
                              java.util.List<java.lang.Integer> permissionIds)
                              throws com.danube.scrumworks.exception.ServerException
Creates a product role for the given product with name description and list of permissions.

Parameters:
productId - id of the product
name - name of the product role
description - description of the product role
permissionIds - list of permissions to be associated with the product role
Returns:
added product role
Throws:
com.danube.scrumworks.exception.ServerException - if not called by global administrators or invalid product id or product role title is empty or product role title is non unique or permission ids are invalid or permission dependency is violated for product role

deleteProductRole

void deleteProductRole(java.lang.Long productRoleId)
                       throws com.danube.scrumworks.exception.ServerException
Deletes product role from a product and removes the specified product role from all users.

Parameters:
productRoleId - identifies product role to be deleted
Throws:
com.danube.scrumworks.exception.ServerException - when called by a user who is not a global administrator or product administrator, or when the product role id is invalid or when the specified product role is set as the default role for the product.

setAsProductAdmin

void setAsProductAdmin(java.lang.Long productId,
                       java.lang.Long userId,
                       java.lang.Boolean isProductAdmin)
                       throws com.danube.scrumworks.exception.ServerException
Sets user as a product administrator in the product.

Parameters:
productId - id of the product
userId - id of the user
isProductAdmin - set to true to make user a product administrator for the product
Throws:
com.danube.scrumworks.exception.ServerException - if not called by global administrators or if the product can not be found or if the user can not be found

getUserRoles

AggregateUserProductAccessData getUserRoles(java.lang.Long userId)
                                            throws com.danube.scrumworks.exception.ServerException
Gets all product roles for a user.

Parameters:
userId - id of the user
Returns:
list of product access data and a flag indicating whether user is global administrator
Throws:
com.danube.scrumworks.exception.ServerException - if not called by global administrators or if the user can not be found.

addTeamsForProduct

void addTeamsForProduct(java.lang.Long productId,
                        java.util.List<java.lang.Long> teamIds)
                        throws com.danube.scrumworks.exception.ServerException
Adds an existing team to the product, support both sprint and kanban teams.

Parameters:
productId - Id of the product for which the teams are to be added to
teamIds - list of team IDs to be added to the product
Throws:
com.danube.scrumworks.exception.ServerException - if team to be added does not exist, hence invalid team ID or if an error occurs.

removeTeamsForProduct

void removeTeamsForProduct(java.lang.Long productId,
                           java.util.List<java.lang.Long> teamIds)
                           throws com.danube.scrumworks.exception.ServerException
Removes an existing team from the product, support both sprint and kanban teams.

Parameters:
productId - Id of the product for which the teams are to be removed from
teamIds - list of team IDs to be removed from the product
Throws:
com.danube.scrumworks.exception.ServerException - if team to be removed does not exist, hence invalid team ID or if an error occurs.

getCustomBacklogItemStatuses

java.util.List<BacklogItemStatus> getCustomBacklogItemStatuses(java.lang.Long productId)
                                                               throws com.danube.scrumworks.exception.ServerException
Gets the custom backlog item statuses.

Parameters:
productId - the product id for which the custom status to be retrieved.
Returns:
the custom statuses the list of custom statuses associated to the product.
Throws:
com.danube.scrumworks.exception.ServerException - the server exception if the product does not exist.

createCustomBacklogItemStatus

BacklogItemStatus createCustomBacklogItemStatus(BacklogItemStatus backlogItemStatus)
                                                throws com.danube.scrumworks.exception.ServerException
Creates a custom backlogitem status into a product.

Parameters:
backlogItemStatus - the backlog item status to create.
Returns:
The created backlog item status.
Throws:
com.danube.scrumworks.exception.ServerException - the server exception

moveCustomBacklogItemStatusAfter

BacklogItemStatus moveCustomBacklogItemStatusAfter(java.lang.Long statusIdToMove,
                                                   java.lang.Long statusIdBefore)
                                                   throws com.danube.scrumworks.exception.ServerException
Moves a custom backlog item status after the status provided.

Parameters:
statusIdToMove - the status to move.
statusIdBefore - the status before the moved item.
Returns:
BacklogItemStatus The updated backlog item status.
Throws:
com.danube.scrumworks.exception.ServerException - if there is any exception moving the status.

moveCustomBacklogItemStatusBefore

BacklogItemStatus moveCustomBacklogItemStatusBefore(java.lang.Long statusIdToMove,
                                                    java.lang.Long statusIdAfter)
                                                    throws com.danube.scrumworks.exception.ServerException
Moves a custom backlog item status before the status provided.

Parameters:
statusIdToMove - the status to move.
statusIdAfter - the status after the moved item.
Returns:
BacklogItemStatus The updated backlog item status.
Throws:
com.danube.scrumworks.exception.ServerException - if there is any exception moving the status.

deleteCustomBacklogItemStatus

void deleteCustomBacklogItemStatus(java.lang.Long statusIdToDelete,
                                   java.lang.Long statusIdToMerge)
                                   throws com.danube.scrumworks.exception.ServerException
Deletes a cusotm backlogitem status from a product and merges the backlogitems of deleted status into status provided with merge id.

Parameters:
statusIdToDelete - the backlog item status to delete.
statusIdToMerge - the status id with which the PBIs of deleted status will be merged.
Throws:
com.danube.scrumworks.exception.ServerException - the server exception

updateCustomBacklogItemStatus

BacklogItemStatus updateCustomBacklogItemStatus(java.lang.Long productId,
                                                java.lang.Long statusId,
                                                java.lang.String name)
                                                throws com.danube.scrumworks.exception.ServerException
Updates a custom backlogitem status for a product.

Parameters:
productId - the productId .
statusId - the statusId.
name - the status name.
Returns:
BacklogItemStatus The updated backlog item status.
Throws:
com.danube.scrumworks.exception.ServerException - the server exception