blob: 5483f2c69dd6faf1f82525542ac40af6f6f04759 [file] [log] [blame]
/*********************************************************************
* Copyright (c) 2013 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.ev;
import java.util.Collection;
import org.eclipse.osee.ats.api.IAtsObject;
import org.eclipse.osee.ats.api.IAtsWorkItem;
import org.eclipse.osee.ats.api.insertion.IAtsInsertionActivity;
import org.eclipse.osee.ats.api.util.IAtsChangeSet;
import org.eclipse.osee.ats.api.workdef.IStateToken;
import org.eclipse.osee.ats.api.workflow.IAtsTeamWorkflow;
import org.eclipse.osee.framework.core.data.ArtifactId;
/**
* @author Donald G. Dunne
*/
public interface IAtsEarnedValueService {
public IAtsWorkPackage getWorkPackage(IAtsWorkItem workItem);
public Collection<IAtsWorkPackage> getWorkPackageOptions(IAtsObject object);
public ArtifactId getWorkPackageId(IAtsWorkItem atsObject);
public void setWorkPackage(IAtsWorkPackage workPackage, Collection<IAtsWorkItem> workItems);
public void removeWorkPackage(IAtsWorkPackage workPackage, Collection<IAtsWorkItem> workItems);
public IAtsWorkPackage getWorkPackage(ArtifactId artifact);
public Collection<IAtsWorkPackage> getWorkPackages(IAtsInsertionActivity insertionActivity);
double getEstimatedHoursFromArtifact(IAtsWorkItem workItem);
double getEstimatedHoursFromTasks(IAtsWorkItem workItem, IStateToken relatedToState);
double getEstimatedHoursFromTasks(IAtsWorkItem workItem);
double getEstimatedHoursFromReviews(IAtsWorkItem workItem);
double getEstimatedHoursFromReviews(IAtsWorkItem workItem, IStateToken relatedToState);
double getEstimatedHoursTotal(IAtsWorkItem workItem, IStateToken relatedToState);
double getEstimatedHoursTotal(IAtsWorkItem workItem);
void setWorkPackage(IAtsWorkPackage workPackage, IAtsWorkItem workItem, IAtsChangeSet changes);
/**
* @return this object casted, else if hard artifact constructed, else load and construct
*/
IAtsWorkPackage getWorkPackageById(ArtifactId workPackageId);
double getRemainHoursFromArtifact(IAtsWorkItem workItem);
double getRemainHoursTotal(IAtsWorkItem workItem);
double getRemainFromTasks(IAtsWorkItem workItem);
double getRemainFromReviews(IAtsWorkItem workItem);
double getManHrsPerDayPreference();
int getPercentCompleteFromTasks(IAtsWorkItem workItem, IStateToken relatedToState);
int getPercentCompleteFromTasks(IAtsWorkItem workItem);
int getPercentCompleteFromReviews(IAtsWorkItem workItem, IStateToken state);
default boolean isUseTextWorkPackages(Collection<IAtsTeamWorkflow> teamWfs) {
boolean useTextWorkPackages = false;
if (!teamWfs.isEmpty()) {
useTextWorkPackages =
teamWfs.iterator().next().getTeamDefinition().getTags().contains(WorkPackageUtil.USE_TEXT_WORK_PACKAGES);
}
return useTextWorkPackages;
}
}