モジュール java.base
パッケージ java.time.temporal

クラスValueRange

  • すべての実装されたインタフェース:
    Serializable

    public final class ValueRange
    extends Object
    implements Serializable
    日付/時間フィールドの有効な値の範囲です。

    TemporalFieldのすべてのインスタンスには、有効な値の範囲があります。 たとえば、ISO暦の月の日は1から始まり、28と31の間のいずれかで終わります。 このクラスはその有効な範囲を保持します。

    このクラスの制限に注意することが重要です。 最大値と最小値だけが提供されます。 外側の範囲の中に無効な値が存在する可能性があります。 たとえば、ある特異なフィールドの有効値が1、2、4、6、7の場合、範囲は1から7までになりますが、値3および5は無効です。

    このクラスのインスタンスは、特定のフィールドには関連付けられません。

    実装要件:
    このクラスは不変でスレッドセーフです。
    導入されたバージョン:
    1.8
    関連項目:
    直列化された形式
    • メソッドのサマリー

      修飾子と型 メソッド 説明
      int checkValidIntValue​(long value, TemporalField field)
      指定された値が有効で、intに収まることを確認します。
      long checkValidValue​(long value, TemporalField field)
      指定された値が有効であることを確認します。
      boolean equals​(Object obj)
      この範囲がもう一方の範囲と等しいかどうかを確認します。
      long getLargestMinimum()
      フィールドが取り得る最大の最小値を取得します。
      long getMaximum()
      フィールドが取り得る最大値を取得します。
      long getMinimum()
      フィールドが取り得る最小値を取得します。
      long getSmallestMaximum()
      フィールドが取り得る最小の最大値を取得します。
      int hashCode()
      この範囲のハッシュ・コード。
      boolean isFixed()
      値の範囲が固定で完全に既知かどうか。
      boolean isIntValue()
      範囲内のすべての値がintに収まるかどうかを確認します。
      boolean isValidIntValue​(long value)
      値が有効な範囲内にあり、範囲内のすべての値がintに収まることを確認します。
      boolean isValidValue​(long value)
      値が有効な範囲内にあるかどうかを確認します。
      static ValueRange of​(long min, long max)
      固定の値範囲を取得します。
      static ValueRange of​(long min, long maxSmallest, long maxLargest)
      可変の値範囲を取得します。
      static ValueRange of​(long minSmallest, long minLargest, long maxSmallest, long maxLargest)
      完全に可変の値範囲を取得します。
      String toString()
      この範囲をStringとして出力します。
    • メソッドの詳細

      • of

        public static ValueRange of​(long min,
                                    long max)
        固定の値範囲を取得します。

        このファクトリは、最小値と最大値が固定の範囲を取得します。 たとえば、ISO暦の月の範囲は常に1から12までです。

        パラメータ:
        min - 最小値
        max - 最大値
        戻り値:
        最小値、最大値に対応するValueRange。null以外
        例外:
        IllegalArgumentException - 最小値が最大値より大きい場合
      • of

        public static ValueRange of​(long min,
                                    long maxSmallest,
                                    long maxLargest)
        可変の値範囲を取得します。

        このファクトリは、最小値が固定で最大値が可変の範囲を取得します。 たとえば、ISO暦の「月の日」は常に1から始まりますが、28と31の間で終わります。

        パラメータ:
        min - 最小値
        maxSmallest - 最小の最大値
        maxLargest - 最大の最大値
        戻り値:
        最小値、最小の最大値、最大の最大値に対応するValueRange。null以外
        例外:
        IllegalArgumentException - 最小値が最小の最大値より大きいか、最小の最大値が最大の最大値より大きい場合
      • of

        public static ValueRange of​(long minSmallest,
                                    long minLargest,
                                    long maxSmallest,
                                    long maxLargest)
        完全に可変の値範囲を取得します。

        このファクトリは、最小値と最大値の両方が可変の範囲を取得します。

        パラメータ:
        minSmallest - 最小の最小値
        minLargest - 最大の最小値
        maxSmallest - 最小の最大値
        maxLargest - 最大の最大値
        戻り値:
        最小の最小値、最大の最小値、最小の最大値、最大の最大値に対応するValueRange。null以外
        例外:
        IllegalArgumentException - 最小の最小値が最小の最大値より大きいか、最小の最大値が最大の最大値より大きいか、最大の最小値が最大の最大値より大きい場合
      • isFixed

        public boolean isFixed()
        値の範囲が固定で完全に既知かどうか。

        たとえば、ISO暦の「月の日」は1から始まり、28と31の間で終わります。 最大値が不明確なので、範囲は固定ではありません。 ただし、1月の場合、範囲は常に1から31までなので、範囲は固定です。

        戻り値:
        値のセットが固定の場合はtrue
      • getMinimum

        public long getMinimum()
        フィールドが取り得る最小値を取得します。

        たとえば、ISO暦の「月の日」は常に1から始まります。 したがって、最小値は1です。

        戻り値:
        このフィールドの最小値
      • getLargestMinimum

        public long getLargestMinimum()
        フィールドが取り得る最大の最小値を取得します。

        たとえば、ISO暦の「月の日」は常に1から始まります。 したがって、最大の最小値は1です。

        戻り値:
        このフィールドが取り得る最大の最小値
      • getSmallestMaximum

        public long getSmallestMaximum()
        フィールドが取り得る最小の最大値を取得します。

        たとえば、ISO暦の「月の日」は28と31の間で終わります。 したがって、最小の最大値は28です。

        戻り値:
        このフィールドが取り得る最小の最大値
      • getMaximum

        public long getMaximum()
        フィールドが取り得る最大値を取得します。

        たとえば、ISO暦の「月の日」は28と31の間で終わります。 したがって、最大値は31です。

        戻り値:
        このフィールドの最大値
      • isIntValue

        public boolean isIntValue()
        範囲内のすべての値がintに収まるかどうかを確認します。

        すべての有効値がintの境界に収まるかどうかを確認します。

        たとえば、ISO暦の月の値は1から12までで、これはintに収まります。 これに対し、ISO暦の「1日のうちのナノ秒」は1から86,400,000,000,000までで、これはintに収まりません。

        この実装は、getMinimum()getMaximum()を使用します。

        戻り値:
        有効な値が常にintに収まる場合はtrue
      • isValidValue

        public boolean isValidValue​(long value)
        値が有効な範囲内にあるかどうかを確認します。

        値が保存された値の範囲内にあるかどうかを確認します。

        パラメータ:
        value - チェックする値
        戻り値:
        値が有効な場合はtrue
      • isValidIntValue

        public boolean isValidIntValue​(long value)
        値が有効な範囲内にあり、範囲内のすべての値がintに収まることを確認します。

        このメソッドはisIntValue()isValidValue(long)を組み合せます。

        パラメータ:
        value - チェックする値
        戻り値:
        値が有効でintに収まる場合はtrue
      • checkValidValue

        public long checkValidValue​(long value,
                                    TemporalField field)
        指定された値が有効であることを確認します。

        値が有効な範囲内にあることを検証します。 このフィールドはエラー・メッセージを向上させるためだけに使用されます。

        パラメータ:
        value - チェックする値
        field - チェック対象のフィールド。nullの場合もあり
        戻り値:
        渡された値
        関連項目:
        isValidValue(long)
      • checkValidIntValue

        public int checkValidIntValue​(long value,
                                      TemporalField field)
        指定された値が有効で、intに収まることを確認します。

        値が有効な範囲内にあり、すべての有効値がintの境界に収まることを検証します。 このフィールドはエラー・メッセージを向上させるためだけに使用されます。

        パラメータ:
        value - チェックする値
        field - チェック対象のフィールド。nullの場合もあり
        戻り値:
        渡された値
        関連項目:
        isValidIntValue(long)
      • equals

        public boolean equals​(Object obj)
        この範囲がもう一方の範囲と等しいかどうかを確認します。

        比較は4つの値(最小値、最大の最小値、最小の最大値、最大値)に基づいて行われます。 ValueRange型のオブジェクトのみが比較され、それ以外の型ではfalseが返されます。

        オーバーライド:
        equals 、クラス:  Object
        パラメータ:
        obj - チェックするオブジェクト、nullはfalseを返す
        戻り値:
        これがもう一方の範囲と等しい場合はtrue
        関連項目:
        Object.hashCode()HashMap
      • toString

        public String toString()
        この範囲をStringとして出力します。

        フォーマットは「{min}/{largestMin} - {smallestMax}/{max}」となります。ここで、largestMinまたはsmallestMaxのセクションは、minまたはmaxと同じであれば、関連するスラッシュとともに省略できます。

        オーバーライド:
        toString 、クラス:  Object
        戻り値:
        この範囲の文字列表現。null以外