private void processSoftwareRequirement(ArtifactReadable softwareRequirement, String criticality) throws IOException { writer.writeCell( softwareRequirement.getName(), SafetyReportGenerator.SOFTWARE_REQUIREMENT_INDEX); String softwareRequirementDAL = writeCriticalityWithDesignCheck( softwareRequirement, criticality, CoreRelationTypes.Requirement_Trace__Higher_Level, CoreAttributeTypes.DevelopmentAssuranceLevel); writer.writeCell( calculateBoeingEquivalentSWQualLevel( softwareRequirementDAL, softwareRequirement.getAttributeCount(CoreAttributeTypes.Partition))); writer.writeCell(functionalCategory); writer.writeCell( Collections.toString( ",", getAttributesToStringList(softwareRequirement, CoreAttributeTypes.Partition))); writer.writeCell( safetyReport.getComponentUtil().getQualifiedComponentNames(softwareRequirement)); Collection<String> codeUnits = safetyReport.getRequirementToCodeUnitsValues(softwareRequirement); if (Conditions.hasValues(codeUnits)) { for (String codeUnit : codeUnits) { writer.writeCell(codeUnit, SafetyReportGenerator.CODE_UNIT_INDEX); writer.endRow(); } } else { writer.endRow(); } }
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; }