1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.myfaces.tobago.example.demo;
21
22 import org.apache.commons.lang3.StringUtils;
23 import org.slf4j.Logger;
24 import org.slf4j.LoggerFactory;
25
26 import javax.enterprise.context.SessionScoped;
27 import javax.inject.Named;
28 import java.io.Serializable;
29 import java.lang.invoke.MethodHandles;
30 import java.util.ArrayList;
31 import java.util.List;
32 import java.util.stream.Collectors;
33
34 @SessionScoped
35 @Named
36 public class SuggestQuotMarkController implements Serializable {
37 private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
38 private List<String> suggestions = new ArrayList<>(8);
39 private String query;
40
41 public SuggestQuotMarkController() {
42 suggestions.add("Mercury");
43 suggestions.add("Venus");
44 suggestions.add("Earth");
45 suggestions.add("Mars");
46 suggestions.add("Jupiter");
47 suggestions.add("Saturn");
48 suggestions.add("Uranus");
49 suggestions.add("Quotation\"Mark");
50 }
51
52 public String getQuery() {
53 return query;
54 }
55
56 public void setQuery(final String query) {
57 this.query = query;
58 }
59
60 public List<String> getSuggestions() {
61 final String substring = query != null ? query : "";
62 LOG.info("Creating items for substring: '" + substring + "'");
63 return suggestions.stream().filter(s -> StringUtils.containsIgnoreCase(s, substring)).collect(Collectors.toList());
64 }
65 }