blob: dec3abf727db56537cef85b362cd413e10103f5c [file] [log] [blame]
/*********************************************************************
* Copyright (c) 2015 Boeing
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Boeing - initial API and implementation
**********************************************************************/
package org.eclipse.osee.ats.api.task;
import java.util.Collection;
import java.util.Map;
import org.eclipse.osee.ats.api.IAtsWorkItem;
import org.eclipse.osee.ats.api.data.AtsTaskDefToken;
import org.eclipse.osee.ats.api.task.create.ChangeReportTaskData;
import org.eclipse.osee.ats.api.task.create.ChangeReportTaskNameProviderToken;
import org.eclipse.osee.ats.api.task.create.CreateTasksDefinitionBuilder;
import org.eclipse.osee.ats.api.task.create.IAtsChangeReportTaskNameProvider;
import org.eclipse.osee.ats.api.util.IAtsChangeSet;
import org.eclipse.osee.ats.api.workdef.IAtsWorkDefinition;
import org.eclipse.osee.ats.api.workdef.IStateToken;
import org.eclipse.osee.ats.api.workflow.IAtsTask;
import org.eclipse.osee.ats.api.workflow.IAtsTeamWorkflow;
import org.eclipse.osee.framework.core.data.ArtifactId;
import org.eclipse.osee.framework.core.data.ArtifactToken;
/**
* @author Donald G. Dunne
*/
public interface IAtsTaskService {
NewTaskSet createTasks(NewTaskSet newTaskSet);
NewTaskSet createTasks(NewTaskSet newTaskSet, Map<Long, IAtsTeamWorkflow> idToTeamWf);
Collection<IAtsTask> getTasks(IAtsTeamWorkflow teamWf, IStateToken relatedToState);
Collection<IAtsTask> getTask(IAtsWorkItem workItem);
Collection<IAtsTask> getTasks(IAtsTeamWorkflow teamWf);
Collection<? extends IAtsTask> getTasks(IAtsWorkItem workItem, IStateToken state);
boolean isRelatedToState(IAtsTask task, String stateName);
default boolean hasTasks(IAtsTeamWorkflow teamWf, IStateToken forState) {
return getTasks(teamWf, forState).size() > 0;
}
/**
* @return related ArtifactId or ArtifactId.SENTINAL if not exists
*/
ArtifactId getTaskToRelatedArtifactChanged(IAtsTask task);
boolean hasTasks(IAtsTeamWorkflow teamWf);
default boolean hasNoTasks(IAtsTeamWorkflow teamWf) {
return !hasTasks(teamWf);
}
Collection<IAtsWorkDefinition> calculateTaskWorkDefs(IAtsTeamWorkflow teamWf);
default CreateTasksDefinitionBuilder createTasksSetDefinitionBuilder(AtsTaskDefToken taskSetToken) {
return new CreateTasksDefinitionBuilder(taskSetToken);
}
Collection<CreateTasksDefinitionBuilder> getTaskSets(IAtsTeamWorkflow teamWf);
ChangeReportTaskData createTasks(ChangeReportTaskData changeReportTaskData);
IAtsChangeReportTaskNameProvider getChangeReportOptionNameProvider(ChangeReportTaskNameProviderToken token);
IAtsTask getTask(ArtifactToken artifact);
boolean isAutoGen(IAtsTask task);
/**
* @return true if task is autogen, but de-referenced (no longer have matching change report artifact) so user can
* delete
*/
boolean isAutoGenDeReferenced(IAtsTask task);
void addDeReferencedNote(IAtsTask task, IAtsChangeSet changes);
boolean removeDeReferencedNote(IAtsTask task, IAtsChangeSet changes);
Collection<IAtsTaskProvider> getTaskProviders();
}