1 /* 2 * Entity - Entity is an object-relational mapping tool for the D programming language. Referring to the design idea of JPA. 3 * 4 * Copyright (C) 2015-2018 Shanghai Putao Technology Co., Ltd 5 * 6 * Developer: HuntLabs.cn 7 * 8 * Licensed under the Apache-2.0 License. 9 * 10 */ 11 12 module hunt.entity.criteria.Predicate; 13 14 class Predicate { 15 16 string _str; 17 18 this () { 19 20 } 21 22 Predicate addValue(string key,string op,string value) { 23 _str ~= key ~ " " ~ op ~ " " ~ value; 24 return this; 25 } 26 Predicate andValue(T...)(T args) { 27 _str ~= " ( "; 28 foreach(k,v;args) { 29 _str ~= v.toString(); 30 if (k != args.length - 1) 31 _str ~= " AND "; 32 } 33 _str ~= " ) "; 34 return this; 35 } 36 Predicate orValue(T...)(T args) { 37 _str ~= " ( "; 38 foreach(k,v;args) { 39 _str ~= v.toString(); 40 if (k != args.length - 1) 41 _str ~= " OR "; 42 } 43 _str ~= " ) "; 44 return this; 45 } 46 Predicate betweenValue(string key, string c1, string c2) { 47 _str = " "~key~" BETWEEN "~c1~" AND "~c2; 48 return this; 49 } 50 Predicate In(T...)(T args) { 51 foreach(k,v; args) { 52 if (k == 0) { 53 _str ~= " " ~ v ~ " IN ("; 54 } 55 else { 56 _str ~= " \"" ~ v~"\""; 57 if (k == args.length - 1) { 58 _str ~= ")"; 59 } 60 else { 61 _str ~= ","; 62 } 63 } 64 } 65 return this; 66 } 67 68 override string toString() 69 { 70 return _str; 71 } 72 }