@omnia/fx-models
Version:
Provide Omnia Fx Models Stuffs.
44 lines (43 loc) • 2.54 kB
TypeScript
import { FilterLogicalOperator } from "../QueryFilter";
import { FilterComponent } from "./FilterComponent";
import { IBooleanFilterOperatorBuilder, IDateTimeFilterOperatorBuilder, IDateTimeOffsetFilterOperatorBuilder, IFloatFilterOperatorBuilder, IIntFilterOperatorBuilder, ILongFilterOperatorBuilder, IStringFilterOperatorBuilder, IntFilterOperatorBuilder } from "./FilterOperatorBuilder";
export interface IFilterComponentBuilder {
int(propertyName: string): IIntFilterOperatorBuilder;
float(propertyName: string): IFloatFilterOperatorBuilder;
dateTime(propertyName: string): IDateTimeFilterOperatorBuilder;
dateTimeOffset(propertyName: string): IDateTimeOffsetFilterOperatorBuilder;
string(propertyName: string): IStringFilterOperatorBuilder;
boolean(propertyName: string): IBooleanFilterOperatorBuilder;
long(propertyName: string): ILongFilterOperatorBuilder;
expression(buildInnerExpression: (builder: IFilterComponentBuilder) => IFilterLogicalOperatorBuilder): IFilterLogicalOperatorBuilder;
}
export interface IFilterLogicalOperatorBuilder {
and(): IFilterComponentBuilder;
or(): IFilterComponentBuilder;
build(): FilterComponent[];
}
export declare class FilterBuilder implements IFilterComponentBuilder, IFilterLogicalOperatorBuilder {
protected filters: FilterComponent[];
protected intFilterOperatorBuilder?: IntFilterOperatorBuilder;
private floatFilterOperatorBuilder?;
private dateTimeFilterOperatorBuilder?;
private dateTimeOffsetFilterOperatorBuilder?;
private stringFilterOperatorBuilder?;
private booleanFilterOperatorBuilder?;
private longFilterOperatorBuilder?;
propertyName?: string;
filterLogicalOperator: FilterLogicalOperator;
constructor(filters?: FilterComponent[]);
addFilter(filterComponent: FilterComponent): void;
and(): IFilterComponentBuilder;
or(): IFilterComponentBuilder;
build(): FilterComponent[];
int(propertyName: string): IIntFilterOperatorBuilder;
float(propertyName: string): IFloatFilterOperatorBuilder;
long(propertyName: string): ILongFilterOperatorBuilder;
dateTime(propertyName: string): IDateTimeFilterOperatorBuilder;
dateTimeOffset(propertyName: string): IDateTimeOffsetFilterOperatorBuilder;
string(propertyName: string): IStringFilterOperatorBuilder;
boolean(propertyName: string): IBooleanFilterOperatorBuilder;
expression(buildInnerExpression: (builder: IFilterComponentBuilder) => IFilterLogicalOperatorBuilder): IFilterLogicalOperatorBuilder;
}