1 package io.github.magwas.inez.element;
2
3 import java.util.Set;
4 import java.util.stream.Stream;
5
6 import org.springframework.beans.factory.annotation.Autowired;
7 import org.springframework.stereotype.Service;
8
9 import io.github.magwas.inez.storage.model.BridiReference;
10 import io.github.magwas.inez.storage.repository.BridiReferenceRepository;
11 import io.github.magwas.runtime.LogUtil;
12
13 @Service
14 public class GetRelativeForBridiElementService {
15 @Autowired
16 BridiReferenceRepository bridiReferenceRepository;
17
18 public Stream<String> apply(final String id, final String selbriId, final int fromPosition, final int toPosition) {
19 LogUtil.debug("findAllBySelbriIdAndSumtiIdAndPosition(", selbriId, id, fromPosition);
20 Set<BridiReference> found =
21 bridiReferenceRepository.findAllBySelbriIdAndSumtiIdAndPosition(selbriId, id, fromPosition);
22 LogUtil.debug("found:", found);
23 return found.stream()
24 .map(BridiReference::bridiId)
25 .map(x -> bridiReferenceRepository.findByBridiIdAndPosition(x, toPosition))
26 .filter(x -> x.isPresent())
27 .map(x -> x.get().sumtiId());
28 }
29 }