4 * Copyright (C) 2009 EDIT
5 * European Distributed Institute of Taxonomy
6 * http://www.e-taxonomy.eu
8 * The contents of this file are subject to the Mozilla Public License Version 1.1
9 * See LICENSE.TXT at the top of this package for the full license terms.
11 package eu
.etaxonomy
.cdm
.persistence
.query
;
17 * @author a.babadshanjan
21 public enum MatchMode
{
24 * translates into <code>field = term</code>
28 * translates into <code>field LIKE %term</code>
32 * translates into <code>field LIKE %term%</code>
36 * translates into <code>field LIKE term%</code>
40 private static final char STAR_WILDCARD
= '*';
41 private static final char SQL_WILDCARD
= '%';
42 private String matchOperator
;
43 private final String wildcardStr
= "" + SQL_WILDCARD
;
45 MatchMode(String matchOperator
){
46 this.matchOperator
= matchOperator
;
49 public String
queryStringFrom(String queryString
){
50 if(queryString
== null){
53 queryString
= queryString
.replace(STAR_WILDCARD
, SQL_WILDCARD
);
56 queryString
= appendWildcard(queryString
);
59 queryString
= prependWildcard(queryString
);
62 queryString
= appendWildcard(queryString
);
63 queryString
= prependWildcard(queryString
);
66 // Fall through for EXACT - Nothing to do //
76 private String
prependWildcard(String queryString
) {
77 if(!queryString
.startsWith(wildcardStr
)){
78 queryString
+= wildcardStr
;
87 private String
appendWildcard(String queryString
) {
88 if(!queryString
.endsWith(wildcardStr
)){
89 queryString
+= wildcardStr
;
94 public String
getMatchOperator(){