現在の Jspresso バージョン (現時点では 4.0.7) を使用して簡単に実現できるとは思いません。問題は、比較可能なスカラー プロパティを (comparator, min, max) フィルタリング構造に分解するコードが、依存性注入を使用してオーバーライドするにはネストが深すぎることです。
次の方法:
protected boolean isPropertyFilterComparable(
IPropertyDescriptor propertyDescriptor) {
return propertyDescriptor instanceof INumberPropertyDescriptor
|| propertyDescriptor instanceof IDatePropertyDescriptor
|| propertyDescriptor instanceof ITimePropertyDescriptor
|| propertyDescriptor instanceof IDurationPropertyDescriptor;
}
RefQueryComponentDescriptor
インスタンスが実行時に によって構築されますBasicQueryComponentDescriptorFactory
が、プライベート メソッド (つまり)内にあるクラスに配置されますcreateOrGetQueryComponentDescriptor
。そのため、独自のカスタマイズされた のインスタンスを挿入できたとしても、メソッドBasicQueryComponentDescriptorFactory
に到達するにはあまりにも多くのコードをコピーして貼り付ける必要がありますisPropertyFilterComparable
。
あなたのユース ケースは完全に有効なので、Jspresso GitHubで拡張リクエストを作成することをお勧めします。
少し単純ではありませんが、より用途の広いアプローチは、追加のカスタマイズのためにさまざまな比較可能なプロパティ (数値、日付、時刻、期間) を開いて、これらのプロパティがフィルターに追加されたときにコンパレーター構造を生成するかどうかを Jspresso に伝えることです。見る。
何かのようなもの :
date 'validityDate', filterComparable:true
しかし、これには SJS DSL の変更が必要です。