Skip to content

Commit ca36aa7

Browse files
Merge pull request #7042 from deutschebank/db-contrib/waltz-7032-flow-classifications-add-directionality
Db contrib/waltz 7032 flow classifications add directionality
2 parents 639af46 + 76333de commit ca36aa7

8 files changed

Lines changed: 327 additions & 18 deletions

File tree

waltz-common/src/main/java/org/finos/waltz/common/CollectionUtilities.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,17 @@
1818

1919
package org.finos.waltz.common;
2020

21-
import java.util.*;
21+
import java.util.ArrayList;
22+
import java.util.Collection;
23+
import java.util.Collections;
24+
import java.util.Comparator;
25+
import java.util.List;
26+
import java.util.Optional;
2227
import java.util.function.Consumer;
2328
import java.util.function.Function;
2429
import java.util.function.Predicate;
2530
import java.util.stream.Collectors;
2631

27-
import static org.finos.waltz.common.Checks.checkNotEmpty;
28-
2932

3033
public class CollectionUtilities {
3134

@@ -242,5 +245,4 @@ public static Long sumInts(Collection<Integer> values) {
242245
return acc;
243246
}
244247

245-
246248
}

waltz-common/src/main/java/org/finos/waltz/common/ListUtilities.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import java.util.*;
2525
import java.util.function.Function;
2626
import java.util.function.Predicate;
27+
import java.util.stream.Collectors;
2728

2829
import static java.util.stream.Collectors.toList;
2930
import static org.finos.waltz.common.Checks.checkNotNull;
@@ -205,6 +206,17 @@ public static <T> T getOrDefault(List<T> xs, int idx, T defaultValue) {
205206
}
206207

207208

209+
public static <X> List<X> take(Collection<X> xs,
210+
int amount) {
211+
return ListUtilities
212+
.ensureNotNull(xs)
213+
.stream()
214+
.limit(amount)
215+
.collect(Collectors.toList());
216+
}
217+
218+
219+
208220
/**
209221
* Returns a list of distinct values from a given list
210222
* @param ts a list of T's with possible duplicates

waltz-data/src/main/java/org/finos/waltz/data/flow_classification_rule/FlowClassificationRuleDao.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import org.finos.waltz.data.InlineSelectFieldFactory;
2222
import org.finos.waltz.model.EntityKind;
2323
import org.finos.waltz.model.EntityReference;
24+
import org.finos.waltz.model.FlowDirection;
2425
import org.finos.waltz.model.ImmutableEntityReference;
2526
import org.finos.waltz.model.Severity;
2627
import org.finos.waltz.model.flow_classification_rule.DiscouragedSource;
@@ -372,7 +373,12 @@ public List<FlowClassificationRuleVantagePoint> findExpandedFlowClassificationRu
372373
}
373374

374375

375-
public List<FlowClassificationRuleVantagePoint> findFlowClassificationRuleVantagePoints() {
376+
public List<FlowClassificationRuleVantagePoint> findFlowClassificationRuleVantagePoints(FlowDirection direction) {
377+
return findFlowClassificationRuleVantagePoints(FLOW_CLASSIFICATION.DIRECTION.eq(direction.name()));
378+
}
379+
380+
381+
private List<FlowClassificationRuleVantagePoint> findFlowClassificationRuleVantagePoints(Condition condition) {
376382
SelectSeekStep4<Record8<Long, Integer, Long, Integer, Long, String, String, Long>, Integer, Integer, Long, Long> select = dsl
377383
.select(targetOrgUnitId,
378384
declaredOrgUnitLevel,
@@ -394,6 +400,7 @@ public List<FlowClassificationRuleVantagePoint> findFlowClassificationRuleVantag
394400
.and(ehDataType.KIND.eq(EntityKind.DATA_TYPE.name()))
395401
.and(ehDataType.ID.eq(ehDataType.ANCESTOR_ID)))
396402
.innerJoin(FLOW_CLASSIFICATION).on(FLOW_CLASSIFICATION_RULE.FLOW_CLASSIFICATION_ID.eq(FLOW_CLASSIFICATION.ID))
403+
.where(condition)
397404
.orderBy(
398405
ehOrgUnit.LEVEL.desc(),
399406
ehDataType.LEVEL.desc(),
@@ -533,7 +540,7 @@ private SelectOnConditionStep<Record> baseSelect() {
533540
}
534541

535542

536-
public int updatePointToPointFlowClassificationRules() {
543+
public int updatePointToPointFlowClassificationRules(FlowDirection direction) {
537544

538545
Condition logicalFlowTargetIsAuthSourceParent = FLOW_CLASSIFICATION_RULE.SUBJECT_ENTITY_ID.eq(LOGICAL_FLOW.SOURCE_ENTITY_ID)
539546
.and(LOGICAL_FLOW.SOURCE_ENTITY_KIND.eq(FLOW_CLASSIFICATION_RULE.SUBJECT_ENTITY_KIND)
@@ -558,7 +565,7 @@ public int updatePointToPointFlowClassificationRules() {
558565
.and(level.ID.eq(level.ANCESTOR_ID)
559566
.and(level.KIND.eq(EntityKind.DATA_TYPE.name()))))
560567
.innerJoin(FLOW_CLASSIFICATION).on(FLOW_CLASSIFICATION_RULE.FLOW_CLASSIFICATION_ID.eq(FLOW_CLASSIFICATION.ID))
561-
.where(FLOW_CLASSIFICATION.CODE.ne(LOGICAL_FLOW_DECORATOR.RATING))
568+
.where(FLOW_CLASSIFICATION.CODE.ne(LOGICAL_FLOW_DECORATOR.RATING).and(FLOW_CLASSIFICATION.DIRECTION.eq(direction.name())))
562569
.orderBy(level.LEVEL)
563570
.fetch()
564571
.stream()

waltz-data/src/main/java/org/finos/waltz/data/licence/search/LicenceSearchDao.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,15 @@
22

33
import org.finos.waltz.common.ListUtilities;
44
import org.finos.waltz.data.SearchDao;
5-
import org.finos.waltz.data.legal_entity.LegalEntityDao;
65
import org.finos.waltz.data.licence.LicenceDao;
76
import org.finos.waltz.model.entity_search.EntitySearchOptions;
8-
import org.finos.waltz.model.legal_entity.LegalEntity;
97
import org.finos.waltz.model.licence.Licence;
108
import org.jooq.Condition;
119
import org.jooq.DSLContext;
1210
import org.springframework.beans.factory.annotation.Autowired;
13-
import org.springframework.stereotype.Service;
11+
import org.springframework.stereotype.Repository;
1412

15-
import java.util.ArrayList;
1613
import java.util.List;
17-
import java.util.TreeSet;
1814

1915
import static java.util.Collections.emptyList;
2016
import static org.finos.waltz.common.ListUtilities.concat;
@@ -23,7 +19,7 @@
2319
import static org.finos.waltz.data.SearchUtilities.mkTerms;
2420
import static org.finos.waltz.schema.Tables.LICENCE;
2521

26-
@Service
22+
@Repository
2723
public class LicenceSearchDao implements SearchDao<Licence> {
2824

2925
private final DSLContext dsl;

0 commit comments

Comments
 (0)