1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package repository;
import io.ebean.Ebean;
import io.ebean.EbeanServer;
import models.Company;
import play.db.ebean.EbeanConfig;
import javax.inject.Inject;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.concurrent.CompletionStage;
import static java.util.concurrent.CompletableFuture.supplyAsync;
/**
*
*/
public class CompanyRepository {
private final EbeanServer ebeanServer;
private final DatabaseExecutionContext executionContext;
@Inject
public CompanyRepository(EbeanConfig ebeanConfig, DatabaseExecutionContext executionContext) {
this.ebeanServer = Ebean.getServer(ebeanConfig.defaultServer());
this.executionContext = executionContext;
}
public CompletionStage<Map<String, String>> options() {
return supplyAsync(() -> ebeanServer.find(Company.class).orderBy("name").findList(), executionContext)
.thenApply(list -> {
HashMap<String, String> options = new LinkedHashMap<String, String>();
for (Company c : list) {
options.put(c.id.toString(), c.name);
}
return options;
});
}
}