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()));
}
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();
}
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();
}
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;
}
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())));
}
Aggregations