View Javadoc
1   package io.github.magwas.inez.query;
2   
3   import java.util.List;
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.Bridi;
10  import io.github.magwas.inez.element.BridiElementFactory;
11  import io.github.magwas.inez.parse.ParseTextService;
12  import io.github.magwas.inez.storage.SaveBridiService;
13  import io.github.magwas.runtime.LogUtil;
14  
15  @Service
16  public class CreateBridisFromQueryService {
17  	@Autowired
18  	ParseTextService parseText;
19  	@Autowired
20  	CreateBridisFromParserOutputService createBridisFromParserOutput;
21  	@Autowired
22  	SaveBridiService saveBridi;
23  	@Autowired
24  	BridiElementFactory bridiElementFactory;
25  
26  	public Stream<Bridi> apply(String query) {
27  		LogUtil.debug("create(" + query);
28  		List<Bridi> toSave = parseText.apply(query)
29  				.map(createBridisFromParserOutput).flatMap(x -> x)
30  				.peek(x -> LogUtil.debug("saving", x)).toList();
31  		saveBridi.apply(toSave);
32  		toSave.forEach(x -> bridiElementFactory.apply(x.id()));
33  		return toSave.stream();
34  	}
35  
36  }