Пример #1
0
 @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;
 }
Пример #2
0
 @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;
 }
Пример #3
0
 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());
   }
 }
Пример #4
0
  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;
  }