@omnia/fx-models
Version:
Provide Omnia Fx Models Stuffs.
41 lines (40 loc) • 2.27 kB
TypeScript
import { FilterLogicalOperator } from "../QueryFilter";
import { FilterComponent } from "./FilterComponent";
import { IBooleanFilterOperatorBuilder, IDateTimeFilterOperatorBuilder, IDateTimeOffsetFilterOperatorBuilder, IFloatFilterOperatorBuilder, IIntFilterOperatorBuilder, IStringFilterOperatorBuilder } 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;
expression(buildInnerExpression: (builder: IFilterComponentBuilder) => IFilterLogicalOperatorBuilder): IFilterLogicalOperatorBuilder;
}
export interface IFilterLogicalOperatorBuilder {
and(): IFilterComponentBuilder;
or(): IFilterComponentBuilder;
build(): FilterComponent[];
}
export declare class FilterBuilder implements IFilterComponentBuilder, IFilterLogicalOperatorBuilder {
private filters;
private intFilterOperatorBuilder?;
private floatFilterOperatorBuilder?;
private dateTimeFilterOperatorBuilder?;
private dateTimeOffsetFilterOperatorBuilder?;
private stringFilterOperatorBuilder?;
private booleanFilterOperatorBuilder?;
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;
dateTime(propertyName: string): IDateTimeFilterOperatorBuilder;
dateTimeOffset(propertyName: string): IDateTimeOffsetFilterOperatorBuilder;
string(propertyName: string): IStringFilterOperatorBuilder;
boolean(propertyName: string): IBooleanFilterOperatorBuilder;
expression(buildInnerExpression: (builder: IFilterComponentBuilder) => IFilterLogicalOperatorBuilder): IFilterLogicalOperatorBuilder;
}