@Override public List<RuleEvent> toMappedRuleEvents ( Set<ProgramStageInstance> programStageInstances, ProgramStageInstance psiToEvaluate ) { return programStageInstances.stream().filter( Objects::nonNull ) .filter( psi -> !psi.getUid().equals( psiToEvaluate.getUid() ) ) .map( ps -> RuleEvent.create( ps.getUid(), ps.getProgramStage().getUid(), RuleEvent.Status.valueOf( ps.getStatus().toString() ), ps.getExecutionDate() != null ? ps.getExecutionDate() :ps.getDueDate(), ps.getDueDate(), ps.getOrganisationUnit() != null ? ps.getOrganisationUnit().getUid() : "", ps.getDataValues().stream().filter( Objects::nonNull ) .map( dv -> RuleDataValue.create( ps.getExecutionDate() != null ? ps.getExecutionDate() :ps.getDueDate(), dv.getProgramStageInstance().getProgramStage().getUid(), dv.getDataElement().getUid(), getTrackedEntityDataValue( dv ) ) ) .collect( Collectors.toList() ), ps.getProgramStage().getName() ) ).collect( Collectors.toList() ); }
@Override public List<RuleEvent> toMappedRuleEvents( Set<ProgramStageInstance> programStageInstances ) { return programStageInstances.stream().filter( Objects::nonNull ) .map( ps -> RuleEvent.create( ps.getUid(), ps.getProgramStage().getUid(), RuleEvent.Status.valueOf( ps.getStatus().toString() ), ps.getExecutionDate() != null ? ps.getExecutionDate() : ps.getDueDate(), ps.getDueDate(), ps.getOrganisationUnit() != null ? ps.getOrganisationUnit().getUid() : "", ps.getDataValues().stream().filter( Objects::nonNull ) .map( dv -> RuleDataValue.create( ps.getExecutionDate() != null ? ps.getExecutionDate() :ps.getDueDate(), dv.getProgramStageInstance().getProgramStage().getUid(), dv.getDataElement().getUid(), getTrackedEntityDataValue( dv ) ) ) .collect( Collectors.toList() ), ps.getProgramStage().getName() ) ).collect( Collectors.toList() ); }
@Override public RuleEvent toMappedRuleEvent( ProgramStageInstance psi ) { if ( psi == null ) { return null; } return RuleEvent.create( psi.getUid(), psi.getProgramStage().getUid(), RuleEvent.Status.valueOf( psi.getStatus().toString() ), psi.getExecutionDate() != null ? psi.getExecutionDate() : psi.getDueDate(), psi.getDueDate(), psi.getOrganisationUnit() != null ? psi.getOrganisationUnit().getUid() : "", psi.getDataValues().stream().filter( Objects::nonNull ) .map( dv -> RuleDataValue.create( psi.getExecutionDate() != null ? psi.getExecutionDate() :psi.getDueDate(), dv.getProgramStageInstance().getProgramStage().getUid(), dv.getDataElement().getUid(), getTrackedEntityDataValue( dv ) ) ) .collect( Collectors.toList() ), psi.getProgramStage().getName() ); }