ts.util
クラス CountRotate

java.lang.Object
  上位を拡張 ts.util.CountRotate

public class CountRotate
extends java.lang.Object

循環カウンタクラス。
カウンタの値を保持し、それを一つずつ加算していくためのメソッドを 用意している。 カウンタの初期値、下限値、上限値は、デフォルトでは 0、Long.MIN_VALUELong.MAX_VALUE に設定されるが、コンストラクタで任意の値を指定することもできる。
カウンタは1ずつ加算されるが、最大値に至ったところでさらに加算すると 最小値に設定され、カウンタの値は循環する。
このクラスの直接のインスタンスはマルチスレッドに対応していないが、 synchronizedCountRotate()メソッドを使用して、 スレッドセーフなインスタンスを作成することができる。

バージョン:
$Revision: 1.2 $, $Date: 2007/02/15 15:28:02 $
作成者:
佐藤隆之.

コンストラクタの概要
CountRotate()
          デフォルトコンストラクタ。
CountRotate(long init)
          カウンタの初期値を引数にとるコンストラクタ。
CountRotate(long init, long min, long max)
          カウンタの初期値、下限値、上限値を引数にとるコンストラクタ。
 
メソッドの概要
 long currentValue()
          現在のカウンタ値を取得する。
 long increment()
          カウンタを一つ加算する。
static CountRotate synchronizedCountRotate()
          スレッドセーフな循環カウンタオブジェクトを生成する。
static CountRotate synchronizedCountRotate(CountRotate c)
          指定された循環カウンタオブジェクトの現在の値を使用して、スレッドセーフな 循環カウンタオブジェクトを新たに生成する。
static CountRotate synchronizedCountRotate(long init)
          カウンタの初期値を指定してスレッドセーフな循環カウンタオブジェクトを 生成する。
static CountRotate synchronizedCountRotate(long init, long min, long max)
          カウンタの初期値、下限値、上限値を指定してスレッドセーフな 循環カウンタオブジェクトを生成する。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

CountRotate

public CountRotate()
デフォルトコンストラクタ。
カウンタの初期値をゼロ、下限値をLong.MIN_VALUE、 上限値をLong.MAX_VALUEに設定する。


CountRotate

public CountRotate(long init)
カウンタの初期値を引数にとるコンストラクタ。
カウンタの下限値をLong.MIN_VALUE、 上限値をLong.MAX_VALUEに設定する。

パラメータ:
init - カウンタの初期値。

CountRotate

public CountRotate(long init,
                   long min,
                   long max)
カウンタの初期値、下限値、上限値を引数にとるコンストラクタ。
初期値が下限値より小さい場合は、初期値を下限値に設定する。 初期値が上限値より大きい場合は、初期値を上限値に設定する。 下限値と上限値の大小関係が逆の場合は、お互いに値を入れ替える。

パラメータ:
init - カウンタの初期値。
min - カウンタの下限値。
max - カウンタの上限値。
メソッドの詳細

currentValue

public long currentValue()
現在のカウンタ値を取得する。

戻り値:
現在のカウンタ値。

increment

public long increment()
カウンタを一つ加算する。
加算する前のカウンタ値が最大値Long.MAX_VALUEの場合は、 加算した後Long.MIN_VALUEになる。

戻り値:
加算後のカウンタの値。

synchronizedCountRotate

public static CountRotate synchronizedCountRotate()
スレッドセーフな循環カウンタオブジェクトを生成する。
カウンタの初期値はゼロとする。

戻り値:
スレッドセーフな循環カウンタオブジェクト。

synchronizedCountRotate

public static CountRotate synchronizedCountRotate(long init)
カウンタの初期値を指定してスレッドセーフな循環カウンタオブジェクトを 生成する。

パラメータ:
init - カウンタの初期値。
戻り値:
スレッドセーフな循環カウンタオブジェクト。

synchronizedCountRotate

public static CountRotate synchronizedCountRotate(long init,
                                                  long min,
                                                  long max)
カウンタの初期値、下限値、上限値を指定してスレッドセーフな 循環カウンタオブジェクトを生成する。

パラメータ:
init - カウンタの初期値。
min - カウンタの下限値。
max - カウンタの上限値。
戻り値:
スレッドセーフな循環カウンタオブジェクト。

synchronizedCountRotate

public static CountRotate synchronizedCountRotate(CountRotate c)
指定された循環カウンタオブジェクトの現在の値を使用して、スレッドセーフな 循環カウンタオブジェクトを新たに生成する。

パラメータ:
c - 元になる循環カウンタオブジェクト。
戻り値:
スレッドセーフな循環カウンタオブジェクト。
例外:
java.lang.AssertionError - 引数がヌルの場合(デバッグモードのみ)。


Copyright (C) SATOH Takayuki All Rights Reserved.