blob: ad48a2d7041b8152e3bd91caf3c7a354f43b4428 [file] [log] [blame]
package de.ids_mannheim.korap.user;
import lombok.Data;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* User: hanl
* Date: 9/16/13
* Time: 4:38 PM
*/
@Data
public class UserQuery {
private Integer id;
private String queryLanguage;
private String query;
private String name;
private String description;
private Integer creator;
public UserQuery (Integer id, int creator) {
setId(id);
setCreator(creator);
setName("");
setDescription("");
setQuery("");
setQueryLanguage("");
}
public UserQuery (String ql, String query, String description) {
setDescription(description);
setQuery(query);
setQueryLanguage(ql);
}
public UserQuery () {
setDescription("");
setQuery("");
setQueryLanguage("");
setName("");
}
public void setQuery (String query) {
this.query = query;
setName("Query: "
+ query.substring(0, query.length() > 20 ? 20 : query.length()));
}
// todo: use example queries or store in database
public static List<UserQuery> demoUserQueries () {
List<UserQuery> queries = new ArrayList<>();
UserQuery q1 = new UserQuery();
q1.setQueryLanguage("COSMAS2");
q1.setQuery("$wegen #IN(L) <s>");
q1.setDescription("Findet 'wegen' an Satzanfängen. Berücksichtigt auch Groß- und Kleinschreibung");
//todo: change query
UserQuery q2 = new UserQuery();
q2.setQueryLanguage("COSMAS2");
q2.setQuery("base/cons:Buchstabe base/aggr:Buchstabe");
UserQuery q3 = new UserQuery();
q3.setQueryLanguage("COSMAS2");
q3.setDescription("Regular Expression Search");
q3.setQuery("id:/WPD_AAA.*/ AND textClass:sport");
UserQuery q4 = new UserQuery();
q4.setQueryLanguage("COSMAS2");
q4.setQuery("mpt/syntax_pos:@CC\\|und");
UserQuery q5 = new UserQuery();
q5.setQueryLanguage("COSMAS2");
q5.setQuery("VVINF\\|.*en");
queries.add(q1);
// queries.add(q2);
// queries.add(q3);
queries.add(q4);
queries.add(q5);
return queries;
}
//id is irrevelant, since data was coming
// from frontend and thus this object does not contain a id that could be compared!
// same with the userAccount. Not set yet!
@Override
public boolean equals (Object o) {
if (this == o)
return true;
if (!(o instanceof UserQuery))
return false;
UserQuery userQuery = (UserQuery) o;
if (!query.equals(userQuery.query))
return false;
if (!queryLanguage.equals(userQuery.queryLanguage))
return false;
return true;
}
@Override
public int hashCode () {
int result = getId() != null ? getId().hashCode() : 0;
result = 31 * result
+ (queryLanguage != null ? queryLanguage.hashCode() : 0);
result = 31 * result + (query != null ? query.hashCode() : 0);
return result;
}
@Override
public String toString () {
final StringBuffer sb = new StringBuffer("UserQuery{");
sb.append("id=").append(getId());
// sb.append(", owner=").append(getOwner());
sb.append(", queryLanguage='").append(queryLanguage).append('\'');
sb.append(", query='").append(query).append('\'');
sb.append(", description='").append(getDescription()).append('\'');
sb.append('}');
return sb.toString();
}
public Map toMap () {
Map map = new HashMap();
map.put("name", this.name);
map.put("description", this.description);
map.put("query", this.query);
map.put("queryLanguage", this.queryLanguage);
return map;
}
}