Search in sources :

Example 1 with Tuple4

use of org.jooq.lambda.tuple.Tuple4 in project waltz by khartec.

the class PersonResolver method main.

public static void main(String[] args) {
    AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(DIBaseConfiguration.class);
    DSLContext dsl = ctx.getBean(DSLContext.class);
    InvolvementNameToIdResolver involvementNameToIdResolver = new InvolvementNameToIdResolver(dsl);
    PersonNameToEmpIdResolver personNameToEmpIdResolver = new PersonNameToEmpIdResolver(dsl);
    OrgNameToIdResolver orgNameToIdResolver = new OrgNameToIdResolver(dsl);
    Siphon<Tuple4<String, String, Optional<Long>, Optional<String>>> noOrgSiphon = mkSiphon(t -> !t.v3.isPresent());
    Siphon<Tuple4<String, String, Optional<Long>, Optional<String>>> noPersonSiphon = mkSiphon(t -> !t.v4.isPresent());
    Set<Tuple3<Long, String, Long>> orgEmpInvTuples = involvementNameToIdResolver.resolve(involvementKindName).map(involvementKindId -> data.stream().flatMap(t -> Stream.of(t.v2.split(" / ")).map(name -> tuple(t.v1, name))).distinct().map(t -> t.concat(orgNameToIdResolver.resolve(t.v1))).map(t -> t.concat(personNameToEmpIdResolver.resolve(t.v2))).filter(noOrgSiphon).filter(noPersonSiphon).map(t -> t.skip2().map1(// empId
    Optional::get).map2(// orgId
    Optional::get).concat(involvementKindId)).collect(Collectors.toSet())).orElseThrow(() -> new IllegalArgumentException(format("Cannot find involvement kind: %s", involvementKindName)));
    dump("No Org", noOrgSiphon, t -> t.v1);
    dump("No Person", noPersonSiphon, t -> t.v2);
    Set<InvolvementRecord> records = map(orgEmpInvTuples, t -> new InvolvementRecord(EntityKind.ORG_UNIT.name(), t.v1, t.v2, provenance, t.v3, true));
    dsl.batchInsert(records).execute();
}
Also used : DebugUtilities.dump(org.finos.waltz.common.DebugUtilities.dump) InvolvementNameToIdResolver(org.finos.waltz.jobs.tools.resolvers.InvolvementNameToIdResolver) EntityKind(org.finos.waltz.model.EntityKind) Set(java.util.Set) StreamUtilities.mkSiphon(org.finos.waltz.common.StreamUtilities.mkSiphon) PersonNameToEmpIdResolver(org.finos.waltz.jobs.tools.resolvers.PersonNameToEmpIdResolver) DIBaseConfiguration(org.finos.waltz.service.DIBaseConfiguration) Collectors(java.util.stream.Collectors) AnnotationConfigApplicationContext(org.springframework.context.annotation.AnnotationConfigApplicationContext) String.format(java.lang.String.format) InvolvementRecord(org.finos.waltz.schema.tables.records.InvolvementRecord) SetUtilities.map(org.finos.waltz.common.SetUtilities.map) Tuple2(org.jooq.lambda.tuple.Tuple2) List(java.util.List) Tuple3(org.jooq.lambda.tuple.Tuple3) Stream(java.util.stream.Stream) Tuple4(org.jooq.lambda.tuple.Tuple4) Tuple.tuple(org.jooq.lambda.tuple.Tuple.tuple) ListUtilities(org.finos.waltz.common.ListUtilities) OrgNameToIdResolver(org.finos.waltz.jobs.tools.resolvers.OrgNameToIdResolver) DSLContext(org.jooq.DSLContext) Optional(java.util.Optional) Siphon(org.finos.waltz.common.StreamUtilities.Siphon) AnnotationConfigApplicationContext(org.springframework.context.annotation.AnnotationConfigApplicationContext) Optional(java.util.Optional) DSLContext(org.jooq.DSLContext) PersonNameToEmpIdResolver(org.finos.waltz.jobs.tools.resolvers.PersonNameToEmpIdResolver) Tuple4(org.jooq.lambda.tuple.Tuple4) OrgNameToIdResolver(org.finos.waltz.jobs.tools.resolvers.OrgNameToIdResolver) Tuple3(org.jooq.lambda.tuple.Tuple3) InvolvementNameToIdResolver(org.finos.waltz.jobs.tools.resolvers.InvolvementNameToIdResolver) InvolvementRecord(org.finos.waltz.schema.tables.records.InvolvementRecord)

Example 2 with Tuple4

use of org.jooq.lambda.tuple.Tuple4 in project waltz by khartec.

the class ChangeInitiativeGenerator method createCiRecords.

private List<ChangeInitiativeRecord> createCiRecords(List<Long> ouIds) {
    AtomicLong idCtr = new AtomicLong();
    return IntStream.range(0, NUM_CHANGE_INITIATIVES).boxed().flatMap(i -> {
        long initiativeId = idCtr.incrementAndGet();
        Tuple4<Long, ChangeInitiativeKind, Long, String> initiative = tuple(initiativeId, INITIATIVE, null, mkName());
        Stream<Tuple4<Long, ChangeInitiativeKind, Long, String>> children = IntStream.range(0, RND.nextInt(4)).boxed().flatMap(x -> {
            long programmeId = idCtr.incrementAndGet();
            Stream<Tuple4<Long, ChangeInitiativeKind, Long, String>> programmes = Stream.of(tuple(programmeId, PROGRAMME, initiativeId, mkName()));
            Stream<Tuple4<Long, ChangeInitiativeKind, Long, String>> projects = IntStream.range(0, RND.nextInt(4)).boxed().map(y -> tuple(idCtr.incrementAndGet(), PROJECT, programmeId, mkName()));
            return Stream.concat(programmes, projects);
        });
        return Stream.concat(Stream.of(initiative), children);
    }).map(t -> buildChangeInitiativeRecord(t, ouIds)).collect(toList());
}
Also used : Tuple4(org.jooq.lambda.tuple.Tuple4) IntStream(java.util.stream.IntStream) LifecyclePhase(org.finos.waltz.model.application.LifecyclePhase) DSL(org.jooq.impl.DSL) Tables(org.finos.waltz.schema.Tables) EntityKind(org.finos.waltz.model.EntityKind) EntityRelationshipRecord(org.finos.waltz.schema.tables.records.EntityRelationshipRecord) LoggerFactory(org.slf4j.LoggerFactory) Random(java.util.Random) InvolvementRecord(org.finos.waltz.schema.tables.records.InvolvementRecord) Tuple2(org.jooq.lambda.tuple.Tuple2) Tuple4(org.jooq.lambda.tuple.Tuple4) CHANGE_INITIATIVE(org.finos.waltz.schema.tables.ChangeInitiative.CHANGE_INITIATIVE) org.jooq(org.jooq) Map(java.util.Map) APPLICATION_GROUP(org.finos.waltz.schema.tables.ApplicationGroup.APPLICATION_GROUP) StreamUtilities(org.finos.waltz.common.StreamUtilities) EntityHierarchyService(org.finos.waltz.service.entity_hierarchy.EntityHierarchyService) Logger(org.slf4j.Logger) ChangeInitiativeRecord(org.finos.waltz.schema.tables.records.ChangeInitiativeRecord) ChangeInitiativeKind(org.finos.waltz.model.change_initiative.ChangeInitiativeKind) Instant(java.time.Instant) ApplicationContext(org.springframework.context.ApplicationContext) Date(java.sql.Date) RandomUtilities(org.finos.waltz.common.RandomUtilities) AtomicLong(java.util.concurrent.atomic.AtomicLong) List(java.util.List) Collectors.toList(java.util.stream.Collectors.toList) Stream(java.util.stream.Stream) INVOLVEMENT(org.finos.waltz.schema.tables.Involvement.INVOLVEMENT) Tuple.tuple(org.jooq.lambda.tuple.Tuple.tuple) RandomUtilities.randomPick(org.finos.waltz.common.RandomUtilities.randomPick) PERSON(org.finos.waltz.schema.tables.Person.PERSON) AtomicLong(java.util.concurrent.atomic.AtomicLong) ChangeInitiativeKind(org.finos.waltz.model.change_initiative.ChangeInitiativeKind) AtomicLong(java.util.concurrent.atomic.AtomicLong)

Aggregations

List (java.util.List)2 Stream (java.util.stream.Stream)2 EntityKind (org.finos.waltz.model.EntityKind)2 InvolvementRecord (org.finos.waltz.schema.tables.records.InvolvementRecord)2 Tuple.tuple (org.jooq.lambda.tuple.Tuple.tuple)2 Tuple2 (org.jooq.lambda.tuple.Tuple2)2 Tuple4 (org.jooq.lambda.tuple.Tuple4)2 String.format (java.lang.String.format)1 Date (java.sql.Date)1 Instant (java.time.Instant)1 Map (java.util.Map)1 Optional (java.util.Optional)1 Random (java.util.Random)1 Set (java.util.Set)1 AtomicLong (java.util.concurrent.atomic.AtomicLong)1 Collectors (java.util.stream.Collectors)1 Collectors.toList (java.util.stream.Collectors.toList)1 IntStream (java.util.stream.IntStream)1 DebugUtilities.dump (org.finos.waltz.common.DebugUtilities.dump)1 ListUtilities (org.finos.waltz.common.ListUtilities)1