概要
カスタム日付期間は、com.hof.mi.interfaces.CustomDatePeriod クラスの拡張です。このクラスでは、以下の関数を実装する必要があります。
- public abstract String getName();
- public abstract String getUniqueID();
- public abstract FilterUnit getUnit();
- public abstract DatePeriodType getDatePeriodType();
- public abstract List<CalendarCommand> getLeftPredicate();
- public abstract List<CalendarCommand> getRightPredicate();
関数の定義
public abstract String getName();
このメソッドは、カスタム日付期間の表示名を返します。この値は、Yellowfinでユーザーに表示されます。
@Override public String getName() { return "My custom date period"; }
public abstract String getUniqueID();
このメソッドは、カスタム日付期間を定義するためのYellowfin固有のIDを返します。
@Override public String getUniqueID() { return "MY_CUSTOM_DATE"; }
public abstract FilterUnit getFilterUnit();
このメソッドは、カスタム日付フィルターがどの期間にリンクされているかを返します。
使用可能な値は、FilterUnit 列挙型から選択できます。
public enum FilterUnit { SECONDS, MINUTES, HOURS, DAY, WEEK, MONTH, QUARTER, YEAR }
@Override public FilterUnit getUnit() { return FilterUnit.DAY; }
public abstract DatePeriodType getDatePeriodType();
このメソッドは、DatePeriodType 列挙値を返し、適用される比較フィルターのタイプをYellowfinに伝えます。
値はDatePeriod クラスで定義されます。
public enum DatePeriodType { PREDEF_SINGLE_DATES, PREDEF_BETWEEN_DATES, PREDEF_BETWEEN_TIMES }
最も一般的なフィルターは、predefBetweenDates を使用することです。
@Override public DatePeriodType getDatePeriodType() { return DatePeriodType.PREDEF_BETWEEN_DATES; }
public abstract List<CalendarCommand> getLeftPredicate();
このメソッドは、フィルターの最小日時を定義するCalendarCommand クラスの一覧を返します。カレンダーコマンドを作成するには、buildCommand() メソッドを使用し、以下のヘルパー関数も参照してください。
@Override public List<CalendarCommand> getLeftPredicate() { List<CalendarCommand> left = getBeginningOfToday(); left.add(buildCommand(CalendarCommand.CmdType.ADD_AMOUNT, Calendar.YEAR, -10)); return left; }
カレンダーコマンドの使用方法については、こちらを参照してください。
public abstract List<CalendarCommand> getRightPredicate();
このメソッドは、フィルターの日時を定義するCalendarCommand クラスの一覧を返します。カレンダーコマンドを作成するには、buildCommand() メソッドを使用し、以下のヘルパー関数も参照してください。
@Override public List<CalendarCommand> getRightPredicate() { List<CalendarCommand> right = getEndOfToday(); return right; }
カレンダーコマンドの使用方法については、こちらを参照してください。
ヘルパー関数
public final List<CalendarCommand> getBeginningOfToday();
このメソッドは、今日の日付の開始時点に対応するCalendarCommands の一覧を返します。
List<CalendarCommand> startOfToday = getBeginningOfToday();
public final List<CalendarCommand> getEndOfToday();
このメソッドは、今日の日付の終了時点に対応するCalendarCommands の一覧を返します。
List<CalendarCommand> endOfToday = getEndOfToday();
public final CalendarCommand buildCommand(CalendarCommand.CmdType valType, int calendarField);
public final CalendarCommand buildCommand(CalendarCommand.CmdType valType, int calendarField, Integer amount);
このメソッドは、述語に計算を追加するCalendarCommand オブジェクトを返します。この機能は主に、左側と右側の述語の新しい値を計算するために使用されます。
パラメーター;
- CalendarCommand.CmdType valType: この値は、Yellowfinにどの計算タイプを使用するかを伝える列挙型CmdTypeの値を表します。
利用できるCmdTypeは以下の一覧を参照してください。
public enum CmdType { ADD_MIN, ADD_MAX, ADD_AMOUNT, SET_MIN, SET_MAX, SET_AMOUNT, SET_QUARTER_START, SET_QUARTER_END, SET_FIN_QUARTER_START, SET_FIN_QUARTER_END, SET_FIN_YEAR_START, SET_FIN_YEAR_END, SET_WEEK_START, SET_WEEK_END, }
- int calendarField: この値は、Javaのカレンダークラス (java.util.Calendar) に対応する整数値の1つを表し、計算に使用する日付/時刻値をYellowfinに伝えます。
注意: valTypes SET_QUARTER_START、SET_QUARTER_END、SET_FIN_QUARTER_START、SET_FIN_QUARTER_END、SET_FIN_YEAR_START、SET_FIN_YEAR_END、SET_WEEK_START、SET_WEEK_END は特定のcalendarField を必要としません。代わりに任意の値を入力することができます。
- Integer amount (オプション): valtype としてADD_AMOUNT またはSET_AMOUNT を使用する場合に必須です。この値は、追加または設定する値を定義します。
ArrayList<CalendarCommand> commands = new ArrayList<>(); commands.add(buildCommand(CalendarCommand.CmdType.ADD_AMOUNT, Calendar.YEAR, -10)); commands.add(buildCommand(CalendarCommand.CmdType.SET_MIN, Calendar.MONTH));