use of org.finos.waltz.common.hierarchy.Node in project waltz by khartec.
the class LogicalFlowDecoratorRatingsServiceHarness method main.
public static void main(String[] args) throws SQLException {
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(DIConfiguration.class);
FlowClassificationRuleService authoritativeSourceService = ctx.getBean(FlowClassificationRuleService.class);
List<FlowClassificationRule> authSources = authoritativeSourceService.findAll();
OrganisationalUnitService organisationalUnitService = ctx.getBean(OrganisationalUnitService.class);
OrganisationalUnitDao organisationalUnitDao = ctx.getBean(OrganisationalUnitDao.class);
DSLContext dsl = ctx.getBean(DSLContext.class);
dsl.select(ORGANISATIONAL_UNIT.fields()).from(ORGANISATIONAL_UNIT).fetch(organisationalUnitDao.TO_DOMAIN_MAPPER);
EntityHierarchyService hierarchyService = ctx.getBean(EntityHierarchyService.class);
List<OrganisationalUnit> allOrgUnits = organisationalUnitService.findAll();
List<FlatNode<OrganisationalUnit, Long>> ouNodes = ListUtilities.map(allOrgUnits, ou -> new FlatNode<>(ou.id().get(), ou.parentId(), ou));
Forest<OrganisationalUnit, Long> ouForest = HierarchyUtilities.toForest(ouNodes);
Map<Long, Node<OrganisationalUnit, Long>> nodeMap = ouForest.getAllNodes();
}
use of org.finos.waltz.common.hierarchy.Node in project waltz by khartec.
the class PersonHierarchyService method toHierarchyRecords.
private List<PersonHierarchyRecord> toHierarchyRecords(Forest<Person, String> forest) {
List<PersonHierarchyRecord> records = new LinkedList<>();
for (Node<Person, String> node : forest.getAllNodes().values()) {
List<Person> ancestors = ListUtilities.reverse(HierarchyUtilities.parents(node).stream().map(Node::getData).collect(Collectors.toList()));
for (int i = 0; i < ancestors.size(); i++) {
String ancestorId = ancestors.get(i).employeeId();
String selfId = node.getData().employeeId();
PersonHierarchyRecord record = new PersonHierarchyRecord(ancestorId, selfId, i + 1);
records.add(record);
}
}
return records;
}
Aggregations