import { PrintObject } from "./PrintObject";
import { String } from "../dataType/String";
import { Number } from "../dataType/Number";
import { Date} from "../models/Date"
/**
* @class gve.Filter
* @since gve
*/
export class Filter extends PrintObject {
/**
* Filter
* @hideconstructor
* @return gve.Filter
* @tutorial gve
*/
constructor() {
super();
if (!(this instanceof Filter)) {
return new Filter();
}
}
/**
* 按照等于指定字段的数值的条件过滤
* @param {string} name 字段名
* @param {any} value 数值
* @returns Filter
* @tutorial gve.Filter
*/
static eq(name: string, value: any) {
return new Filter();
}
/**
* 按照小于指定字段的数值的条件过滤
* @param {string} name 字段名
* @param {any} value 数值
* @returns Filter
* @tutorial gve.Filter
*/
static lt(name: string, value: any) {
return new Filter();
}
/**
* 按照小于等于指定字段的数值的条件过滤
* @param {string} name 字段名
* @param {any} value 数值
* @returns Filter
* @tutorial gve.Filter
*/
static lte(name: string, value: any) {
return new Filter();
}
/**
* 按照大于指定字段的数值的条件过滤
* @param {string} name 字段名
* @param {any} value 数值
* @returns Filter
* @tutorial gve.Filter
*/
static gt(name: string, value: any) {
return new Filter();
}
/**
* 按照大于等于指定字段的数值的条件过滤
* @param {string} name 字段名
* @param {any} value 数值
* @returns Filter
* @tutorial gve.Filter
*/
static gte(name: string, value: any) {
return new Filter();
}
/**
* 按照不等于指定字段的数值的条件过滤
* @param {string} name 字段名
* @param {any} value 数值
* @returns Filter
* @tutorial gve.Filter
*/
static neq(name: string, value: any) {
return new Filter();
}
/**
* 过滤条件逻辑与
* @param {Filter[]} filter 多个Filter实例
* @returns Filter
* @tutorial gve.Filter
*/
static and(filter: Filter[]) {
return new Filter();
}
/**
* 过滤条件逻辑或
* @param {Filter[]} filter 多个Filter实例
* @returns Filter
* @tutorial gve.Filter
*/
static or(filter: Filter[]) {
return new Filter();
}
/**
* 时间过滤器
* @param {Date|Number|String} start 开始时间
* @param {Date|Number|String} [end] 结束时间
* @returns Filter
* @tutorial gve.Filter
*/
static date(start:Date|Number|String, end?:Date|Number|String){
return new Filter();
}
/**
* 创建一个左边操作数大于右边操作数的过滤器
* @param {String} [leftField] 左操作数选择器
* @param {Any} [rightValue] 右操作数的值
* @param {String} [rightField] 右操作数选择器
* @param {Any} [leftValue] 左操作数的值
* @returns Filter
* @tutorial gve.Filter
*/
static greaterThan(leftField?:string, rightValue?:any, rightField?:string, leftValue?:any){
return new Filter();
}
/**
* 创建一个左边操作数大于或等于右边操作数的过滤器
* @param {String} [leftField] 左操作数选择器
* @param {Any} [rightValue] 右操作数的值
* @param {String} [rightField] 右操作数选择器
* @param {Any} [leftValue] 左操作数的值
* @returns Filter
* @tutorial gve.Filter
*/
static greaterThanOrEquals(leftField?:string, rightValue?:any, rightField?:string, leftValue?:any){
return new Filter();
}
/**
* 创建一个左边操作数小于右边操作数的过滤器
* @param {String} [leftField] 左操作数选择器
* @param {Any} [rightValue] 右操作数的值
* @param {String} [rightField] 右操作数选择器
* @param {Any} [leftValue] 左操作数的值
* @returns Filter
* @tutorial gve.Filter
*/
static lessThan(leftField?:string, rightValue?:any, rightField?:string, leftValue?:any){
return new Filter();
}
/**
* 创建一个左边操作数小于或等于右边操作数的过滤器
* @param {String} [leftField] 左操作数选择器
* @param {Any} [rightValue] 右操作数的值
* @param {String} [rightField] 右操作数选择器
* @param {Any} [leftValue] 左操作数的值
* @returns Filter
* @tutorial gve.Filter
*/
static lessThanOrEquals(leftField?:string, rightValue?:any, rightField?:string, leftValue?:any){
return new Filter();
}
/**
* 创建一个左边操作数不等于右边操作数的过滤器
* @param {String} [leftField] 左操作数选择器
* @param {Any} [rightValue] 右操作数的值
* @param {String} [rightField] 右操作数选择器
* @param {Any} [leftValue] 左操作数的值
* @returns Filter
* @tutorial gve.Filter
*/
static notEquals(leftField?:string, rightValue?:any, rightField?:string, leftValue?:any){
return new Filter();
}
/**
* 过滤器过滤两个操作数是否相等
* @param {String} [leftField] 左操作数选择器
* @param {Any} [rightValue] 右操作数的值
* @param {String} [rightField] 右操作数选择器
* @param {Any} [leftValue] 左操作数的值
* @returns Filter
* @tutorial gve.Filter
*/
static equals(leftField?:string, rightValue?:any, rightField?:string, leftValue?:any){
return new Filter();
}
/**
* 创建一个左边字符串操作数包含右边字符串操作数的过滤器
* @param {String} [leftField] 左操作数选择器
* @param {Any} [rightValue] 右操作数的值
* @param {String} [rightField] 右操作数选择器
* @param {Any} [leftValue] 左操作数的值
* @returns Filter
* @tutorial gve.Filter
*/
static stringContains(leftField?:string, rightValue?:any, rightField?:string, leftValue?:any){
return new Filter();
}
/**
* 创建一个左边字符串操作数以右边字符串操作数结尾的过滤器
* @param {String} [leftField] 左操作数选择器
* @param {Any} [rightValue] 右操作数的值
* @param {String} [rightField] 右操作数选择器
* @param {Any} [leftValue] 左操作数的值
* @returns Filter
* @tutorial gve.Filter
*/
static stringEndsWith(leftField?:string, rightValue?:any, rightField?:string, leftValue?:any){
return new Filter();
}
/**
* 创建一个左边字符串操作数以右边字符串操作数开头的过滤器
* @param {String} [leftField] 左操作数选择器
* @param {Any} [rightValue] 右操作数的值
* @param {String} [rightField] 右操作数选择器
* @param {Any} [leftValue] 左操作数的值
* @returns Filter
* @tutorial gve.Filter
*/
static stringStartsWith(leftField?:string, rightValue?:any, rightField?:string, leftValue?:any){
return new Filter();
}
/**
* 最大差值过滤
* @param {number} difference 允许的最大插值
* @param {string} [leftField] 左操作数选择器
* @param {any} [rightValue] 右操作数的值
* @param {string} [rightField] 右操作数选择器
* @param {any} [leftValue] 左操作数的值
* @returns Filter
* @tutorial gve.Filter
*/
static maxDifference(difference:number, leftField?:string, rightValue?:any, rightField?:string, leftValue?:any){
return new Filter();
}
}