30日間の無料評価版をお試しいただけます。

概要

カスタム日付期間は、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));



  • No labels