@@ -75,6 +75,11 @@ public Latest<ConceptEntityVersion> findLatestConceptById(UUID id) {
7575 return calculatorService .getStampCalculator ().latest (Entity .nid (publicId ));
7676 }
7777
78+ public Latest <ConceptEntityVersion > findLatestConceptById (List <UUID > id ) {
79+ PublicId publicId = PublicIds .of (id );
80+ return calculatorService .getStampCalculator ().latest (Entity .nid (publicId ));
81+ }
82+
7883 public Optional <ConceptEntity <? extends ConceptEntityVersion >> findConceptById (UUID id ) {
7984 PublicId publicId = PublicIds .of (id );
8085 Optional <Entity <EntityVersion >> optionalEntity = Entity .get (Entity .nid (publicId ));
@@ -84,11 +89,25 @@ public Optional<ConceptEntity<? extends ConceptEntityVersion>> findConceptById(U
8489 .map (entity -> (ConceptEntity <? extends ConceptEntityVersion >) entity );
8590 }
8691
92+ public Optional <ConceptEntity <? extends ConceptEntityVersion >> findConceptById (List <UUID > id ) {
93+ PublicId publicId = PublicIds .of (id );
94+ Optional <Entity <EntityVersion >> optionalEntity = Entity .get (Entity .nid (publicId ));
95+ return optionalEntity
96+ .map (entity -> (Entity <? extends EntityVersion >) entity )
97+ .filter (entity -> entity instanceof ConceptEntity <? extends ConceptEntityVersion >)
98+ .map (entity -> (ConceptEntity <? extends ConceptEntityVersion >) entity );
99+ }
100+
87101 public Latest <SemanticEntityVersion > findLatestSemanticById (UUID id ) {
88102 PublicId publicId = PublicIds .of (id );
89103 return calculatorService .getStampCalculator ().latest (Entity .nid (publicId ));
90104 }
91105
106+ public Latest <SemanticEntityVersion > findLatestSemanticById (List <UUID > id ) {
107+ PublicId publicId = PublicIds .of (id );
108+ return calculatorService .getStampCalculator ().latest (Entity .nid (publicId ));
109+ }
110+
92111 public Optional <SemanticEntity <? extends SemanticEntityVersion >> findSemanticById (UUID id ) {
93112 PublicId publicId = PublicIds .of (id );
94113 Optional <Entity <EntityVersion >> optionalEntity = Entity .get (Entity .nid (publicId ));
@@ -98,11 +117,25 @@ public Optional<SemanticEntity<? extends SemanticEntityVersion>> findSemanticByI
98117 .map (entity -> (SemanticEntity <? extends SemanticEntityVersion >) entity );
99118 }
100119
120+ public Optional <SemanticEntity <? extends SemanticEntityVersion >> findSemanticById (List <UUID > id ) {
121+ PublicId publicId = PublicIds .of (id );
122+ Optional <Entity <EntityVersion >> optionalEntity = Entity .get (Entity .nid (publicId ));
123+ return optionalEntity
124+ .map (entity -> (Entity <? extends EntityVersion >) entity )
125+ .filter (entity -> entity instanceof SemanticEntity <? extends SemanticEntityVersion >)
126+ .map (entity -> (SemanticEntity <? extends SemanticEntityVersion >) entity );
127+ }
128+
101129 public Latest <PatternEntityVersion > findLatestPatternById (UUID id ) {
102130 PublicId publicId = PublicIds .of (id );
103131 return calculatorService .getStampCalculator ().latest (Entity .nid (publicId ));
104132 }
105133
134+ public Latest <PatternEntityVersion > findLatestPatternById (List <UUID > id ) {
135+ PublicId publicId = PublicIds .of (id );
136+ return calculatorService .getStampCalculator ().latest (Entity .nid (publicId ));
137+ }
138+
106139 public Optional <PatternEntity <? extends PatternEntityVersion >> findPatternById (UUID id ) {
107140 PublicId publicId = PublicIds .of (id );
108141 Optional <Entity <EntityVersion >> optionalEntity = Entity .get (Entity .nid (publicId ));
@@ -112,11 +145,25 @@ public Optional<PatternEntity<? extends PatternEntityVersion>> findPatternById(U
112145 .map (entity -> (PatternEntity <? extends PatternEntityVersion >) entity );
113146 }
114147
148+ public Optional <PatternEntity <? extends PatternEntityVersion >> findPatternById (List <UUID > id ) {
149+ PublicId publicId = PublicIds .of (id );
150+ Optional <Entity <EntityVersion >> optionalEntity = Entity .get (Entity .nid (publicId ));
151+ return optionalEntity
152+ .map (entity -> (Entity <? extends EntityVersion >) entity )
153+ .filter (entity -> entity instanceof PatternEntity <? extends PatternEntityVersion >)
154+ .map (entity -> (PatternEntity <? extends PatternEntityVersion >) entity );
155+ }
156+
115157 public Latest <StampEntityVersion > findLatestSTAMPById (UUID id ) {
116158 PublicId publicId = PublicIds .of (id );
117159 return calculatorService .getStampCalculator ().latest (Entity .nid (publicId ));
118160 }
119161
162+ public Latest <StampEntityVersion > findLatestSTAMPById (List <UUID > id ) {
163+ PublicId publicId = PublicIds .of (id );
164+ return calculatorService .getStampCalculator ().latest (Entity .nid (publicId ));
165+ }
166+
120167 public Optional <StampEntity <? extends StampEntityVersion >> findSTAMPById (UUID id ) {
121168 PublicId publicId = PublicIds .of (id );
122169 Optional <Entity <EntityVersion >> optionalEntity = Entity .get (Entity .nid (publicId ));
@@ -126,6 +173,15 @@ public Optional<StampEntity<? extends StampEntityVersion>> findSTAMPById(UUID id
126173 .map (entity -> (StampEntity <? extends StampEntityVersion >) entity );
127174 }
128175
176+ public Optional <StampEntity <? extends StampEntityVersion >> findSTAMPById (List <UUID > id ) {
177+ PublicId publicId = PublicIds .of (id );
178+ Optional <Entity <EntityVersion >> optionalEntity = Entity .get (Entity .nid (publicId ));
179+ return optionalEntity
180+ .map (entity -> (Entity <? extends EntityVersion >) entity )
181+ .filter (entity -> entity instanceof StampEntity <? extends StampEntityVersion >)
182+ .map (entity -> (StampEntity <? extends StampEntityVersion >) entity );
183+ }
184+
129185 public List <List <UUID >> findAssociatedSemanticIds (UUID id ) {
130186 List <List <UUID >> semanticIds = new ArrayList <>();
131187 PublicId conceptPublicId = PublicIds .of (id );
@@ -135,6 +191,15 @@ public List<List<UUID>> findAssociatedSemanticIds(UUID id) {
135191 return semanticIds ;
136192 }
137193
194+ public List <List <UUID >> findAssociatedSemanticIds (List <UUID > id ) {
195+ List <List <UUID >> semanticIds = new ArrayList <>();
196+ PublicId conceptPublicId = PublicIds .of (id );
197+ ikeDatabaseConfig .getPrimitiveDataService ().forEachSemanticNidForComponent (
198+ Entity .nid (conceptPublicId ),
199+ semanticNid -> semanticIds .add (PrimitiveData .publicId (semanticNid ).asUuidList ().toList ()));
200+ return semanticIds ;
201+ }
202+
138203 public Map <List <UUID >, String > findIdentifiers (UUID id ) {
139204 Map <List <UUID >, String > identifierMap = new HashMap <>();
140205 PublicId conceptPublicId = PublicIds .of (id );
@@ -156,14 +221,43 @@ public Map<List<UUID>, String> findIdentifiers(UUID id) {
156221 return identifierMap ;
157222 }
158223
224+ public Map <List <UUID >, String > findIdentifiers (List <UUID > id ) {
225+ Map <List <UUID >, String > identifierMap = new HashMap <>();
226+ PublicId conceptPublicId = PublicIds .of (id );
227+ ikeDatabaseConfig .getPrimitiveDataService ().forEachSemanticNidForComponentOfPattern (
228+ Entity .nid (conceptPublicId ),
229+ TinkarTermV2 .IDENTIFIER_PATTERN .nid (),
230+ identifierSemanticNid -> {
231+ Latest <Field <PublicId >> latestSource = calculatorService
232+ .getStampCalculator ()
233+ .getFieldForSemanticWithMeaning (identifierSemanticNid , TinkarTermV2 .IDENTIFIER_SOURCE );
234+ Latest <Field <String >> latestValue = calculatorService
235+ .getStampCalculator ()
236+ .getFieldForSemanticWithMeaning (identifierSemanticNid , TinkarTermV2 .IDENTIFIER_VALUE );
237+ if (latestSource .isPresent () && latestValue .isPresent ()) {
238+ identifierMap .put (latestSource .get ().value ().asUuidList ().stream ().toList (), latestValue .get ().value ());
239+ }
240+ }
241+ );
242+ return identifierMap ;
243+ }
244+
159245 public List <UUID > findUSDialect (UUID id ) {
160246 return findAcceptability (id , TinkarTermV2 .US_DIALECT_PATTERN );
161247 }
162248
249+ public List <UUID > findUSDialect (List <UUID > id ) {
250+ return findAcceptability (id , TinkarTermV2 .US_DIALECT_PATTERN );
251+ }
252+
163253 public List <UUID > findGBDialect (UUID id ) {
164254 return findAcceptability (id , TinkarTermV2 .GB_DIALECT_PATTERN );
165255 }
166256
257+ public List <UUID > findGBDialect (List <UUID > id ) {
258+ return findAcceptability (id , TinkarTermV2 .GB_DIALECT_PATTERN );
259+ }
260+
167261 private List <UUID > findAcceptability (UUID id , EntityProxy .Pattern dialect ) {
168262 List <UUID > acceptabilityId = new ArrayList <>();
169263 PublicId semanticPublicId = PublicIds .of (id );
@@ -180,4 +274,21 @@ private List<UUID> findAcceptability(UUID id, EntityProxy.Pattern dialect) {
180274 );
181275 return acceptabilityId ;
182276 }
277+
278+ private List <UUID > findAcceptability (List <UUID > id , EntityProxy .Pattern dialect ) {
279+ List <UUID > acceptabilityId = new ArrayList <>();
280+ PublicId semanticPublicId = PublicIds .of (id );
281+ ikeDatabaseConfig .getPrimitiveDataService ().forEachSemanticNidForComponentOfPattern (
282+ Entity .nid (semanticPublicId ),
283+ dialect .nid (),
284+ nid -> {
285+ Latest <Field <PublicId >> acceptability = calculatorService .getStampCalculator ()
286+ .getFieldForSemanticWithMeaning (nid , TinkarTermV2 .GREAT_BRITAIN_ENGLISH_DIALECT );
287+ if (acceptability .isPresent ()) {
288+ acceptabilityId .addAll (acceptability .get ().value ().asUuidList ().stream ().toList ());
289+ }
290+ }
291+ );
292+ return acceptabilityId ;
293+ }
183294}
0 commit comments