@Override public IAtsVersion getTargetedVersionByTeamWf(IAtsTeamWorkflow teamWf) throws OseeCoreException { IAtsVersion version = versionCache.getVersion(teamWf); if (version == null) { if (getArtifact(teamWf) .getRelatedArtifactsCount(AtsRelationTypes.TeamWorkflowTargetedForVersion_Version) > 0) { List<Artifact> verArts = getArtifact(teamWf) .getRelatedArtifacts(AtsRelationTypes.TeamWorkflowTargetedForVersion_Version); if (verArts.size() > 1) { OseeLog.log( Activator.class, Level.SEVERE, "Multiple targeted versions for artifact " + teamWf.toStringWithId()); version = cacheProvider .get() .getSoleByGuid(verArts.iterator().next().getGuid(), IAtsVersion.class); } else { version = cacheProvider .get() .getSoleByGuid(verArts.iterator().next().getGuid(), IAtsVersion.class); } versionCache.cache(teamWf, version); } } return version; }
@Override public Collection<IAtsAbstractReview> getReviews(IAtsTeamWorkflow teamWf) { List<IAtsAbstractReview> reviews = new ArrayList<IAtsAbstractReview>(); for (AbstractReviewArtifact reviewArt : ReviewManager.getReviews((TeamWorkFlowArtifact) teamWf.getStoreObject())) { reviews.add(atsClient.getWorkItemFactory().getReview(reviewArt)); } return reviews; }
private IAtsTeamWorkflow setTargetedVersionLink(IAtsTeamWorkflow teamWf, IAtsVersion version) throws OseeCoreException { Artifact versionArt = ArtifactQuery.checkArtifactFromId(version.getGuid(), AtsUtilCore.getAtsBranch()); if (versionArt != null) { TeamWorkFlowArtifact teamArt = TeamWorkFlowManager.getTeamWorkflowArt(teamWf); if (teamArt != null) { teamArt.setRelations( AtsRelationTypes.TeamWorkflowTargetedForVersion_Version, Collections.singleton(versionArt)); return teamArt; } else { throw new OseeStateException( "Team Workflow artifact does not exist [%s]", teamWf.toStringWithId()); } } else { throw new OseeStateException( "Version artifact does not exist [%s]", version.toStringWithId()); } }
public List<CpaDecision> load() { List<CpaDecision> decisions = new ArrayList<CpaDecision>(); QueryBuilder queryBuilder = atsServer .getQuery() .andTypeEquals(AtsArtifactTypes.TeamWorkflow) .and(AtsAttributeTypes.ApplicabilityWorkflow, "true"); if (Strings.isValid(programUuid)) { queryBuilder.and(AtsAttributeTypes.ProgramUuid, programUuid); } if (Conditions.hasValues(uuids)) { queryBuilder.and(AtsAttributeTypes.AtsId, uuids); } if (open != null) { queryBuilder.and( AtsAttributeTypes.CurrentStateType, (open ? StateType.Working.name() : StateType.Completed.name())); } HashCollection<String, CpaDecision> origPcrIdToDecision = new HashCollection<String, CpaDecision>(); String pcrToolId = null; ElapsedTime time = new ElapsedTime("load cpa workflows"); ResultSet<ArtifactReadable> results = queryBuilder.getResults(); time.end(Units.SEC); time = new ElapsedTime("process cpa workflows"); for (ArtifactReadable art : results) { IAtsTeamWorkflow teamWf = atsServer.getWorkItemFactory().getTeamWf(art); CpaDecision decision = CpaFactory.getDecision(teamWf, null); decision.setApplicability( art.getSoleAttributeValue(AtsAttributeTypes.ApplicableToProgram, "")); decision.setRationale(art.getSoleAttributeValue(AtsAttributeTypes.Rationale, "")); String pcrToolIdValue = art.getSoleAttributeValue(AtsAttributeTypes.PcrToolId, ""); if (pcrToolId == null) { pcrToolId = pcrToolIdValue; } decision.setPcrSystem(pcrToolIdValue); boolean completed = art.getSoleAttributeValue(AtsAttributeTypes.CurrentStateType, "") .equals(StateType.Completed.name()); decision.setComplete(completed); decision.setAssignees(teamWf.getStateMgr().getAssigneesStr()); if (completed) { decision.setCompletedBy(teamWf.getCompletedBy().getName()); decision.setCompletedDate(DateUtil.getMMDDYY(teamWf.getCompletedDate())); } // set location of decision workflow decision.setDecisionLocation( CpaUtil.getCpaPath(atsServer).path(teamWf.getAtsId()).build().toString()); // set location of originating pcr String origPcrId = art.getSoleAttributeValue(AtsAttributeTypes.OriginatingPcrId); origPcrIdToDecision.put(origPcrId, decision); decision.setOrigPcrLocation( CpaUtil.getCpaPath(atsServer) .path(origPcrId) .queryParam("pcrSystem", decision.getPcrSystem()) .build() .toString()); // set location of duplicated pcr (if any) String duplicatedPcrId = art.getSoleAttributeValue(AtsAttributeTypes.DuplicatedPcrId, null); if (Strings.isValid(duplicatedPcrId)) { String duplicatedLocation = CpaUtil.getCpaPath(atsServer) .path(duplicatedPcrId) .queryParam("pcrSystem", decision.getPcrSystem()) .build() .toString(); decision.setDuplicatedPcrLocation(duplicatedLocation); decision.setDuplicatedPcrId(duplicatedPcrId); } decisions.add(decision); } time.end(); time = new ElapsedTime("load issues"); IAtsCpaService service = cpaRegistry.getServiceById(pcrToolId); for (Entry<String, CpaPcr> entry : service.getPcrsByIds(origPcrIdToDecision.keySet()).entrySet()) { for (CpaDecision decision : origPcrIdToDecision.getValues(entry.getKey())) { decision.setOriginatingPcr(entry.getValue()); } } time.end(); return decisions; }