package com.metservice.kanban.model; import java.util.Collection; import java.util.List; import java.util.Map; public interface WorkItemTree { void addWorkItem(WorkItem workItem); void addWorkItems(WorkItem... workItem); WorkItem getWorkItem(int id); WorkItem getParent(WorkItem workItem); List<WorkItem> getChildren(int parentId); List<WorkItem> getWorkItemList(); Map<Integer, WorkItem> getWorkItemsById(); List<WorkItem> getWorkItemsOfType(WorkItemType type, String workStream); WorkItem getTopLevelAncestor(WorkItem workItem); int getNewId(); void reorder(WorkItem workItem, List<WorkItem> workItemList); void move(WorkItem workItem, WorkItem target, boolean after); List<WorkItem> getChildrenWithType(int parentId, WorkItemType childType, String workStream); void delete(int id); Collection<WorkItem> getParentAlternatives(WorkItem workItem); void reparent(int id, int newParentId); }