View Javadoc
1   package io.github.magwas.inez.storage;
2   
3   import java.util.ArrayList;
4   import java.util.HashMap;
5   import java.util.List;
6   import java.util.Map;
7   import java.util.Set;
8   
9   import org.springframework.beans.factory.annotation.Autowired;
10  import org.springframework.stereotype.Service;
11  
12  import io.github.magwas.inez.Bridi;
13  import io.github.magwas.inez.storage.model.BridiReference;
14  import io.github.magwas.inez.storage.model.Sumti;
15  import io.github.magwas.inez.storage.repository.BridiReferenceRepository;
16  import io.github.magwas.runtime.LogUtil;
17  
18  @Service
19  public class CreateBridiFromSumtiService {
20  
21  	@Autowired
22  	BridiReferenceRepository bridiReferenceRepository;
23  
24  	public Bridi apply(final Sumti sumti) {
25  		final Map<Integer, BridiReference> map = new HashMap<>();
26  		Set<BridiReference> refs = bridiReferenceRepository.findAllByBridiId(sumti.id());
27  		LogUtil.debug("refs:" + refs);
28  		refs.forEach(ref -> map.put(ref.position(), ref));
29  		LogUtil.debug("map:" + map);
30  		List<String> parts = new ArrayList<>();
31  		int i = 0;
32  		while (map.containsKey(i)) {
33  			parts.add(map.get(i).sumtiId());
34  			i++;
35  		}
36  		Bridi bridi = new Bridi(sumti.id(), sumti.representation(), parts);
37  		LogUtil.debug("bridi:" + bridi);
38  		return bridi;
39  	}
40  }