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  
20  	@Autowired
21  	CreateBridisFromParserOutputService createBridisFromParserOutput;
22  
23  	@Autowired
24  	SaveBridiService saveBridi;
25  
26  	@Autowired
27  	BridiElementFactory bridiElementFactory;
28  
29  	public Stream<Bridi> apply(final String query) {
30  		LogUtil.debug("create(" + query);
31  		List<Bridi> toSave = parseText
32  				.apply(query)
33  				.map(createBridisFromParserOutput)
34  				.flatMap(x -> x)
35  				.peek(x -> LogUtil.debug("saving", x))
36  				.toList();
37  		saveBridi.apply(toSave);
38  		toSave.forEach(x -> bridiElementFactory.apply(x.id()));
39  		return toSave.stream();
40  	}
41  }