@@ -48,19 +48,28 @@ public long countConcepts(Filter filter) {
48
48
}
49
49
50
50
public Optional <Concept > conceptDetail (String dataset , String conceptPath ) {
51
- return conceptRepository .getConcept (dataset , conceptPath )
51
+ return getConcept (dataset , conceptPath , true );
52
+ }
53
+
54
+ private Optional <Concept > getConcept (String dataset , String conceptPath , boolean addAncestors ) {
55
+ Optional <Concept > concept = conceptRepository .getConcept (dataset , conceptPath )
52
56
.map (core -> {
53
- var meta = conceptRepository .getConceptMeta (dataset , conceptPath );
54
- return switch (core ) {
55
- case ContinuousConcept cont -> new ContinuousConcept (cont , meta );
56
- case CategoricalConcept cat -> new CategoricalConcept (cat , meta );
57
- case ConceptShell ignored -> throw new RuntimeException ("Concept shell escaped to API" );
58
- };
59
- }
60
- ).map (conceptDecoratorService ::populateParentConcepts );
57
+ var meta = conceptRepository .getConceptMeta (dataset , conceptPath );
58
+ return switch (core ) {
59
+ case ContinuousConcept cont -> new ContinuousConcept (cont , meta );
60
+ case CategoricalConcept cat -> new CategoricalConcept (cat , meta );
61
+ case ConceptShell ignored -> throw new RuntimeException ("Concept shell escaped to API" );
62
+ };
63
+ }
64
+ );
65
+ return addAncestors ? concept .map (conceptDecoratorService ::populateParentConcepts ) : concept ;
61
66
}
62
67
63
68
public Optional <Concept > conceptTree (String dataset , String conceptPath , int depth ) {
64
69
return conceptRepository .getConceptTree (dataset , conceptPath , depth );
65
70
}
71
+
72
+ public Optional <Concept > conceptDetailWithoutAncestors (String dataset , String conceptPath ) {
73
+ return getConcept (dataset , conceptPath , false );
74
+ }
66
75
}
0 commit comments