| Michael Hanl | ca740d7 | 2015-06-16 10:04:58 +0200 | [diff] [blame] | 1 | package de.ids_mannheim.korap.user; |
| 2 | |
| 3 | import lombok.Data; |
| 4 | |
| 5 | import java.util.ArrayList; |
| 6 | import java.util.HashMap; |
| 7 | import java.util.List; |
| 8 | import java.util.Map; |
| 9 | |
| 10 | /** |
| 11 | * User: hanl |
| 12 | * Date: 9/16/13 |
| 13 | * Time: 4:38 PM |
| 14 | */ |
| 15 | @Data |
| 16 | public class UserQuery { |
| 17 | |
| 18 | private Integer id; |
| 19 | private String queryLanguage; |
| 20 | private String query; |
| 21 | private String name; |
| 22 | private String description; |
| 23 | private Integer creator; |
| 24 | |
| Michael Hanl | 8abaf9e | 2016-05-23 16:46:35 +0200 | [diff] [blame] | 25 | public UserQuery (Integer id, int creator) { |
| Michael Hanl | ca740d7 | 2015-06-16 10:04:58 +0200 | [diff] [blame] | 26 | setId(id); |
| 27 | setCreator(creator); |
| 28 | setName(""); |
| 29 | setDescription(""); |
| 30 | setQuery(""); |
| 31 | setQueryLanguage(""); |
| 32 | } |
| 33 | |
| Michael Hanl | 8abaf9e | 2016-05-23 16:46:35 +0200 | [diff] [blame] | 34 | public UserQuery (String ql, String query, String description) { |
| Michael Hanl | ca740d7 | 2015-06-16 10:04:58 +0200 | [diff] [blame] | 35 | setDescription(description); |
| 36 | setQuery(query); |
| 37 | setQueryLanguage(ql); |
| 38 | } |
| 39 | |
| Michael Hanl | 8abaf9e | 2016-05-23 16:46:35 +0200 | [diff] [blame] | 40 | public UserQuery () { |
| Michael Hanl | ca740d7 | 2015-06-16 10:04:58 +0200 | [diff] [blame] | 41 | setDescription(""); |
| 42 | setQuery(""); |
| 43 | setQueryLanguage(""); |
| 44 | setName(""); |
| 45 | } |
| 46 | |
| Michael Hanl | 8abaf9e | 2016-05-23 16:46:35 +0200 | [diff] [blame] | 47 | public void setQuery (String query) { |
| Michael Hanl | ca740d7 | 2015-06-16 10:04:58 +0200 | [diff] [blame] | 48 | this.query = query; |
| margaretha | 35e1ca2 | 2023-11-16 22:00:01 +0100 | [diff] [blame] | 49 | setName("Query: " + query.substring(0, |
| 50 | query.length() > 20 ? 20 : query.length())); |
| Michael Hanl | ca740d7 | 2015-06-16 10:04:58 +0200 | [diff] [blame] | 51 | } |
| 52 | |
| 53 | // todo: use example queries or store in database |
| Michael Hanl | 8abaf9e | 2016-05-23 16:46:35 +0200 | [diff] [blame] | 54 | public static List<UserQuery> demoUserQueries () { |
| Michael Hanl | ca740d7 | 2015-06-16 10:04:58 +0200 | [diff] [blame] | 55 | |
| 56 | List<UserQuery> queries = new ArrayList<>(); |
| 57 | UserQuery q1 = new UserQuery(); |
| 58 | q1.setQueryLanguage("COSMAS2"); |
| 59 | q1.setQuery("$wegen #IN(L) <s>"); |
| margaretha | 35e1ca2 | 2023-11-16 22:00:01 +0100 | [diff] [blame] | 60 | q1.setDescription( |
| 61 | "Findet 'wegen' an Satzanfängen. Berücksichtigt auch Groß- und Kleinschreibung"); |
| Michael Hanl | ca740d7 | 2015-06-16 10:04:58 +0200 | [diff] [blame] | 62 | |
| 63 | //todo: change query |
| 64 | UserQuery q2 = new UserQuery(); |
| 65 | q2.setQueryLanguage("COSMAS2"); |
| 66 | q2.setQuery("base/cons:Buchstabe base/aggr:Buchstabe"); |
| 67 | |
| 68 | UserQuery q3 = new UserQuery(); |
| 69 | q3.setQueryLanguage("COSMAS2"); |
| 70 | q3.setDescription("Regular Expression Search"); |
| 71 | q3.setQuery("id:/WPD_AAA.*/ AND textClass:sport"); |
| 72 | |
| 73 | UserQuery q4 = new UserQuery(); |
| 74 | q4.setQueryLanguage("COSMAS2"); |
| 75 | q4.setQuery("mpt/syntax_pos:@CC\\|und"); |
| 76 | |
| 77 | UserQuery q5 = new UserQuery(); |
| 78 | q5.setQueryLanguage("COSMAS2"); |
| 79 | q5.setQuery("VVINF\\|.*en"); |
| 80 | |
| 81 | queries.add(q1); |
| 82 | // queries.add(q2); |
| 83 | // queries.add(q3); |
| 84 | queries.add(q4); |
| 85 | queries.add(q5); |
| 86 | return queries; |
| 87 | } |
| 88 | |
| 89 | //id is irrevelant, since data was coming |
| 90 | // from frontend and thus this object does not contain a id that could be compared! |
| 91 | // same with the userAccount. Not set yet! |
| 92 | @Override |
| Michael Hanl | 8abaf9e | 2016-05-23 16:46:35 +0200 | [diff] [blame] | 93 | public boolean equals (Object o) { |
| Michael Hanl | ca740d7 | 2015-06-16 10:04:58 +0200 | [diff] [blame] | 94 | if (this == o) |
| 95 | return true; |
| 96 | if (!(o instanceof UserQuery)) |
| 97 | return false; |
| 98 | UserQuery userQuery = (UserQuery) o; |
| 99 | if (!query.equals(userQuery.query)) |
| 100 | return false; |
| 101 | if (!queryLanguage.equals(userQuery.queryLanguage)) |
| 102 | return false; |
| 103 | return true; |
| 104 | } |
| 105 | |
| 106 | @Override |
| Michael Hanl | 8abaf9e | 2016-05-23 16:46:35 +0200 | [diff] [blame] | 107 | public int hashCode () { |
| Michael Hanl | ca740d7 | 2015-06-16 10:04:58 +0200 | [diff] [blame] | 108 | int result = getId() != null ? getId().hashCode() : 0; |
| Michael Hanl | 8abaf9e | 2016-05-23 16:46:35 +0200 | [diff] [blame] | 109 | result = 31 * result |
| 110 | + (queryLanguage != null ? queryLanguage.hashCode() : 0); |
| Michael Hanl | ca740d7 | 2015-06-16 10:04:58 +0200 | [diff] [blame] | 111 | result = 31 * result + (query != null ? query.hashCode() : 0); |
| 112 | return result; |
| 113 | } |
| 114 | |
| 115 | @Override |
| Michael Hanl | 8abaf9e | 2016-05-23 16:46:35 +0200 | [diff] [blame] | 116 | public String toString () { |
| Michael Hanl | ca740d7 | 2015-06-16 10:04:58 +0200 | [diff] [blame] | 117 | final StringBuffer sb = new StringBuffer("UserQuery{"); |
| 118 | sb.append("id=").append(getId()); |
| 119 | // sb.append(", owner=").append(getOwner()); |
| 120 | sb.append(", queryLanguage='").append(queryLanguage).append('\''); |
| 121 | sb.append(", query='").append(query).append('\''); |
| 122 | sb.append(", description='").append(getDescription()).append('\''); |
| 123 | sb.append('}'); |
| 124 | return sb.toString(); |
| 125 | } |
| 126 | |
| Michael Hanl | 8abaf9e | 2016-05-23 16:46:35 +0200 | [diff] [blame] | 127 | public Map toMap () { |
| Michael Hanl | ca740d7 | 2015-06-16 10:04:58 +0200 | [diff] [blame] | 128 | Map map = new HashMap(); |
| 129 | map.put("name", this.name); |
| 130 | map.put("description", this.description); |
| 131 | map.put("query", this.query); |
| 132 | map.put("queryLanguage", this.queryLanguage); |
| 133 | return map; |
| 134 | } |
| 135 | } |