Search in sources :

Example 51 with EntityReference

use of org.finos.waltz.model.EntityReference in project waltz by khartec.

the class FlowDiagramIdSelectorFactory method mkForDirectEntity.

private Select<Record1<Long>> mkForDirectEntity(IdSelectionOptions options) {
    SelectorUtilities.ensureScopeIsExact(options);
    EntityReference ref = options.entityReference();
    return DSL.select(FLOW_DIAGRAM_ENTITY.DIAGRAM_ID).from(FLOW_DIAGRAM_ENTITY).where(FLOW_DIAGRAM_ENTITY.ENTITY_ID.eq(ref.id())).and(FLOW_DIAGRAM_ENTITY.ENTITY_KIND.eq(ref.kind().name()));
}
Also used : EntityReference(org.finos.waltz.model.EntityReference)

Example 52 with EntityReference

use of org.finos.waltz.model.EntityReference in project waltz by khartec.

the class EntityStatisticSummaryDao method generateWithNoRollup.

public TallyPack<String> generateWithNoRollup(Long statisticId, EntityReference entityReference) {
    Condition condition = mkNoRollupCondition(newArrayList(statisticId), entityReference, esv.CURRENT.eq(true));
    Result<Record4<Long, String, String, Timestamp>> values = dsl.select(esv.STATISTIC_ID, esv.OUTCOME, esv.VALUE, max(esv.CREATED_AT).as(maxCreatedAtField)).from(esv).where(dsl.renderInlined(condition)).groupBy(esv.STATISTIC_ID, esv.OUTCOME, esv.VALUE).fetch();
    LocalDateTime maxCreatedAt = values.isNotEmpty() ? values.get(0).getValue(maxCreatedAtField).toLocalDateTime() : nowUtc();
    List<Tally<String>> tallies = values.stream().map(r -> ImmutableTally.<String>builder().count(Double.parseDouble(r.getValue(esv.VALUE))).id(r.getValue(esv.OUTCOME)).build()).collect(toList());
    return ImmutableTallyPack.<String>builder().entityReference(EntityReference.mkRef(EntityKind.ENTITY_STATISTIC, statisticId)).tallies(tallies).lastUpdatedAt(maxCreatedAt).build();
}
Also used : LocalDateTime(java.time.LocalDateTime) DSL(org.jooq.impl.DSL) EntityKind(org.finos.waltz.model.EntityKind) Tally(org.finos.waltz.model.tally.Tally) LocalDateTime(java.time.LocalDateTime) Autowired(org.springframework.beans.factory.annotation.Autowired) Duration(org.finos.waltz.model.Duration) ListUtilities.newArrayList(org.finos.waltz.common.ListUtilities.newArrayList) Function(java.util.function.Function) BigDecimal(java.math.BigDecimal) Tuple2(org.jooq.lambda.tuple.Tuple2) Future(java.util.concurrent.Future) org.jooq(org.jooq) TallyPack(org.finos.waltz.model.tally.TallyPack) Repository(org.springframework.stereotype.Repository) ImmutableTally(org.finos.waltz.model.tally.ImmutableTally) Unchecked(org.jooq.lambda.Unchecked) ENTITY_STATISTIC_VALUE(org.finos.waltz.schema.tables.EntityStatisticValue.ENTITY_STATISTIC_VALUE) Timestamp(java.sql.Timestamp) Collection(java.util.Collection) Collectors(java.util.stream.Collectors) Date(java.sql.Date) DBExecutorPoolInterface(org.finos.waltz.data.DBExecutorPoolInterface) List(java.util.List) Checks.checkNotNull(org.finos.waltz.common.Checks.checkNotNull) Tuple.tuple(org.jooq.lambda.tuple.Tuple.tuple) SQLDataType(org.jooq.impl.SQLDataType) DateTimeUtilities.nowUtc(org.finos.waltz.common.DateTimeUtilities.nowUtc) EntityReference(org.finos.waltz.model.EntityReference) ImmutableTallyPack(org.finos.waltz.model.tally.ImmutableTallyPack) Collections(java.util.Collections) Tally(org.finos.waltz.model.tally.Tally) ImmutableTally(org.finos.waltz.model.tally.ImmutableTally)

Example 53 with EntityReference

use of org.finos.waltz.model.EntityReference in project waltz by khartec.

the class EntityStatisticSummaryDao method generateSummary.

private <T> TallyPack<String> generateSummary(Long statisticId, Select<Record1<Long>> appIdSelector, Field<T> aggregateField, Function<T, Double> toTally) {
    Condition condition = mkSummaryCondition(newArrayList(statisticId), appIdSelector, esv.CURRENT.eq(true));
    Result<Record3<String, T, Timestamp>> values = dsl.select(esv.OUTCOME, aggregateField, max(esv.CREATED_AT).as(maxCreatedAtField)).from(esv).where(dsl.renderInlined(condition)).groupBy(esv.OUTCOME).fetch();
    LocalDateTime maxCreatedAt = values.isNotEmpty() ? values.get(0).getValue(maxCreatedAtField).toLocalDateTime() : nowUtc();
    List<Tally<String>> tallies = values.stream().map(r -> ImmutableTally.<String>builder().count(toTally.apply(r.getValue(aggregateField))).id(r.getValue(esv.OUTCOME)).build()).collect(toList());
    return ImmutableTallyPack.<String>builder().entityReference(EntityReference.mkRef(EntityKind.ENTITY_STATISTIC, statisticId)).tallies(tallies).lastUpdatedAt(maxCreatedAt).build();
}
Also used : LocalDateTime(java.time.LocalDateTime) DSL(org.jooq.impl.DSL) EntityKind(org.finos.waltz.model.EntityKind) Tally(org.finos.waltz.model.tally.Tally) LocalDateTime(java.time.LocalDateTime) Autowired(org.springframework.beans.factory.annotation.Autowired) Duration(org.finos.waltz.model.Duration) ListUtilities.newArrayList(org.finos.waltz.common.ListUtilities.newArrayList) Function(java.util.function.Function) BigDecimal(java.math.BigDecimal) Tuple2(org.jooq.lambda.tuple.Tuple2) Future(java.util.concurrent.Future) org.jooq(org.jooq) TallyPack(org.finos.waltz.model.tally.TallyPack) Repository(org.springframework.stereotype.Repository) ImmutableTally(org.finos.waltz.model.tally.ImmutableTally) Unchecked(org.jooq.lambda.Unchecked) ENTITY_STATISTIC_VALUE(org.finos.waltz.schema.tables.EntityStatisticValue.ENTITY_STATISTIC_VALUE) Timestamp(java.sql.Timestamp) Collection(java.util.Collection) Collectors(java.util.stream.Collectors) Date(java.sql.Date) DBExecutorPoolInterface(org.finos.waltz.data.DBExecutorPoolInterface) List(java.util.List) Checks.checkNotNull(org.finos.waltz.common.Checks.checkNotNull) Tuple.tuple(org.jooq.lambda.tuple.Tuple.tuple) SQLDataType(org.jooq.impl.SQLDataType) DateTimeUtilities.nowUtc(org.finos.waltz.common.DateTimeUtilities.nowUtc) EntityReference(org.finos.waltz.model.EntityReference) ImmutableTallyPack(org.finos.waltz.model.tally.ImmutableTallyPack) Collections(java.util.Collections) Tally(org.finos.waltz.model.tally.Tally) ImmutableTally(org.finos.waltz.model.tally.ImmutableTally)

Example 54 with EntityReference

use of org.finos.waltz.model.EntityReference in project waltz by khartec.

the class ApplicationService method registerApp.

public AppRegistrationResponse registerApp(AppRegistrationRequest request, String username) {
    checkNotEmpty(request.name(), "Cannot register app with no name");
    AppRegistrationResponse response = applicationDao.registerApp(request);
    if (response.registered()) {
        EntityReference entityReference = ImmutableEntityReference.builder().id(response.id().get()).kind(EntityKind.APPLICATION).build();
        entityAliasDao.updateAliases(entityReference, request.aliases());
        tagService.updateTags(entityReference, request.tags(), username);
    }
    return response;
}
Also used : AppRegistrationResponse(org.finos.waltz.model.application.AppRegistrationResponse) ImmutableEntityReference(org.finos.waltz.model.ImmutableEntityReference) EntityReference(org.finos.waltz.model.EntityReference)

Example 55 with EntityReference

use of org.finos.waltz.model.EntityReference in project waltz by khartec.

the class ChangeInitiativeService method mkEntityRelationshipKey.

private EntityRelationshipKey mkEntityRelationshipKey(long changeInitiativeId, EntityRelationshipChangeCommand command, boolean validate) {
    EntityReference entityReference = command.entityReference();
    RelationshipKind relationship = command.relationship();
    return EntityRelationshipUtilities.mkEntityRelationshipKey(mkRef(CHANGE_INITIATIVE, changeInitiativeId), entityReference, relationship, validate).orElseThrow(() -> new IllegalArgumentException(String.format("Could not build a valid relationship for kind: %s between %s and %s", relationship, CHANGE_INITIATIVE, entityReference.kind())));
}
Also used : EntityReference(org.finos.waltz.model.EntityReference)

Aggregations

EntityReference (org.finos.waltz.model.EntityReference)114 BaseInMemoryIntegrationTest (org.finos.waltz.integration_test.inmem.BaseInMemoryIntegrationTest)55 Test (org.junit.jupiter.api.Test)55 LogicalFlow (org.finos.waltz.model.logical_flow.LogicalFlow)40 EntityKind (org.finos.waltz.model.EntityKind)23 List (java.util.List)21 IdSelectionOptions (org.finos.waltz.model.IdSelectionOptions)19 Autowired (org.springframework.beans.factory.annotation.Autowired)17 DataTypeDecorator (org.finos.waltz.model.datatype.DataTypeDecorator)16 Set (java.util.Set)14 Collection (java.util.Collection)13 EntityReference.mkRef (org.finos.waltz.model.EntityReference.mkRef)13 AnnotationConfigApplicationContext (org.springframework.context.annotation.AnnotationConfigApplicationContext)10 IdSelectionOptions.mkOpts (org.finos.waltz.model.IdSelectionOptions.mkOpts)9 DateTimeUtilities (org.finos.waltz.common.DateTimeUtilities)8 ListUtilities.newArrayList (org.finos.waltz.common.ListUtilities.newArrayList)8 Bookmark (org.finos.waltz.model.bookmark.Bookmark)8 Collections.emptyList (java.util.Collections.emptyList)7 Collectors (java.util.stream.Collectors)7 CollectionUtilities.first (org.finos.waltz.common.CollectionUtilities.first)7