public class Timer extends NotificationBroadcasterSupport implements TimerMBean, MBeanRegistration
このクラスは、日付の指定されたタイマー通知のリストを管理します。単一のメソッドで、必要な数の通知を追加または削除できます。タイマーから発行されたタイマー通知は、古くなると自動的にタイマー通知リストから削除されます。
定期的に繰り返す通知として、タイマー通知を追加できます。
注:
Timer
クラスがロードされたホストのシステム時間に依存しています。ホストのシステム時間が異なっていると、リスナーが正しい時間に通知を受け取れないことがあります。こうした問題を避けるには、タイミングの必要なすべてのホスト・マシンのシステム時間を同期化します。
Timer
に指定されているようにfixed-delay実行です。fixed-rate実行を使用するには、オーバーロードされたaddNotification(String, String, Object, Date, long, long, boolean)
メソッドを使用します。
NotificationBroadcasterSupport
を参照してください。
修飾子と型 | フィールドと説明 |
---|---|
static long |
ONE_DAY
1日のミリ秒数。
|
static long |
ONE_HOUR
1時間のミリ秒数。
|
static long |
ONE_MINUTE
1分のミリ秒数。
|
static long |
ONE_SECOND
1秒のミリ秒数。
|
static long |
ONE_WEEK
1週間のミリ秒数。
|
コンストラクタと説明 |
---|
Timer()
デフォルトのコンストラクタです。
|
修飾子と型 | メソッドと説明 |
---|---|
Integer |
addNotification(String type, String message, Object userData, Date date)
指定された
type 、message 、およびuserData で新しいタイマー通知を作成し、これを指定の日付、間隔null、およびオカレンス数とともに通知リストに挿入します。 |
Integer |
addNotification(String type, String message, Object userData, Date date, long period)
指定された
type 、message 、およびuserData で新しいタイマー通知を作成し、これを指定の日付、間隔null、およびオカレンス数とともに通知リストに挿入します。 |
Integer |
addNotification(String type, String message, Object userData, Date date, long period, long nbOccurences)
指定された
type 、message 、およびuserData で新しいタイマー通知を作成し、これを指定の日付、間隔、およびオカレンス数とともに通知リストに挿入します。 |
Integer |
addNotification(String type, String message, Object userData, Date date, long period, long nbOccurences, boolean fixedRate)
指定された
type 、message 、およびuserData で新しいタイマー通知を作成し、これを指定の日付、間隔、およびオカレンス数とともに通知リストに挿入します。 |
Vector<Integer> |
getAllNotificationIDs()
通知リストに登録されているすべてのタイマー通知識別子を取得します。
|
Date |
getDate(Integer id)
タイマー通知に関連付けられている日付のコピーを取得します。
|
Boolean |
getFixedRate(Integer id)
定期通知をfixed-delayで実行するかfixed-rateで実行するかを示すフラグのコピーを取得します。
|
int |
getNbNotifications()
通知リストに登録されているタイマー通知の数を取得します。
|
Long |
getNbOccurences(Integer id)
タイマー通知に関連付けられている残りの発行数のコピーを取得します。
|
Vector<Integer> |
getNotificationIDs(String type)
指定されたタイプに対応するすべてのタイマー通知識別子を取得します。
|
MBeanNotificationInfo[] |
getNotificationInfo()
このMBeanが送信する可能性のある各通知について、その通知のJavaクラス名と通知タイプを示す配列を返します。
|
String |
getNotificationMessage(Integer id)
指定された識別子に対応するタイマー通知の詳細メッセージを取得します。
|
String |
getNotificationType(Integer id)
指定された識別子に対応するタイマー通知タイプを取得します。
|
Object |
getNotificationUserData(Integer id)
指定された識別子に対応するタイマー通知のユーザー・データ・オブジェクトを取得します。
|
Long |
getPeriod(Integer id)
タイマー通知に関連付けられている間隔(ミリ秒)のコピーを取得します。
|
boolean |
getSendPastNotifications()
タイマーが過去の通知を送信するかどうかを示すフラグを取得します。
|
boolean |
isActive()
タイマーMBeanがアクティブかどうかをテストします。
|
boolean |
isEmpty()
タイマー通知のリストが空かどうかを判定します。
|
void |
postDeregister()
MBeanサーバーから登録解除したあと、タイマーMBeanが必要なオペレーションを実行できるようにします。
|
void |
postRegister(Boolean registrationDone)
MBeanサーバーへの登録が成功または失敗したあと、タイマーMBeanが必要なオペレーションを実行できるようにします。
|
void |
preDeregister()
MBeanサーバーから登録解除する前に、タイマーMBeanが必要なオペレーションを実行できるようにします。
|
ObjectName |
preRegister(MBeanServer server, ObjectName name)
MBeanサーバーに登録する前に必要なオペレーションをタイマーMBeanが実行することを許可します。
|
void |
removeAllNotifications()
通知リストからすべてのタイマー通知を削除し、タイマー通知識別子を更新するためのカウンタをリセットします。
|
void |
removeNotification(Integer id)
指定された識別子に対応するタイマー通知を通知リストから削除します。
|
void |
removeNotifications(String type)
指定されたタイプに対応するすべてのタイマー通知を通知リストから削除します。
|
void |
setSendPastNotifications(boolean value)
タイマーが過去の通知を送信するかどうかを示すフラグを設定します。
|
void |
start()
タイマーを起動します。
|
void |
stop()
タイマーを停止します。
|
addNotificationListener, handleNotification, removeNotificationListener, removeNotificationListener, sendNotification
public static final long ONE_SECOND
addNotification
メソッドで使用される定数。public static final long ONE_MINUTE
addNotification
メソッドで使用される定数。public static final long ONE_HOUR
addNotification
メソッドで使用される定数。public static final long ONE_DAY
addNotification
メソッドで使用される定数。public static final long ONE_WEEK
addNotification
メソッドで使用される定数。public ObjectName preRegister(MBeanServer server, ObjectName name) throws Exception
このコンテキストでは使用しません。
preRegister
、インタフェース: MBeanRegistration
server
- MBeanサーバー。タイマーMBeanはここに登録される。name
- タイマーMBeanのオブジェクト名。Exception
public void postRegister(Boolean registrationDone)
このコンテキストでは使用しません。
postRegister
、インタフェース: MBeanRegistration
registrationDone
- MBeanがMBeanサーバーに正常に登録されたかどうかを示す。登録に失敗した場合の値はfalse。public void preDeregister() throws Exception
タイマーを停止します。
preDeregister
、インタフェース: MBeanRegistration
Exception
public void postDeregister()
このコンテキストでは使用しません。
postDeregister
、インタフェース: MBeanRegistration
public MBeanNotificationInfo[] getNotificationInfo()
NotificationBroadcaster
このMBeanが送信する可能性のある各通知について、その通知のJavaクラス名と通知タイプを示す配列を返します。
この配列に記述されていない通知をMBeanが送信しても、不正ではありません。ただし一部のMBeanサーバー・クライアントは、正しく機能するために、作成される配列に依存する場合があります。
getNotificationInfo
、インタフェース: NotificationBroadcaster
getNotificationInfo
、クラス: NotificationBroadcasterSupport
public void start()
通知リスト内に、その時間より前に発行されたタイマー通知が1つ以上ある場合、この通知はsendPastNotifications
フラグに従って送信され、間隔と残りの発行数に従って更新されます。タイマー通知の日付が現在の日付より前の場合、この通知は通知リストから削除されます。
start
、インタフェース: TimerMBean
public void stop()
stop
、インタフェース: TimerMBean
public Integer addNotification(String type, String message, Object userData, Date date, long period, long nbOccurences, boolean fixedRate) throws IllegalArgumentException
type
、message
、およびuserData
で新しいタイマー通知を作成し、これを指定の日付、間隔、およびオカレンス数とともに通知リストに挿入します。
挿入されるタイマー通知の日付が現在の日付より前の場合、このメソッドは、指定された日付が現在の日付であるとして動作します。
1回だけの通知は、ただちに配信されます。
定期的な通知の場合、最初の通知はただちに配信され、以降の通知は間隔パラメータで指定された間隔で配信されます。
タイマー通知が通知リストに追加されたあと、関連付けられている日付、間隔、および発行数を更新することはできません。
定期通知の場合、Timer
に指定されているように、fixedRateパラメータの値が実行スキームの指定に使用されます。
addNotification
、インタフェース: TimerMBean
type
- タイマー通知タイプ。message
- タイマー通知の詳細メッセージ。userData
- タイマー通知のユーザー・データ・オブジェクト。date
- 通知が発行される日付。period
- タイマー通知の間隔(ミリ秒)。nbOccurences
- 発行されるタイマー通知の合計数。fixedRate
- true
であり、定期通知である場合、fixed-rate実行スキームでスケジュールされる。false
であり、定期通知である場合、fixed-delay実行スキームでスケジュールされる。定期通知でない場合は無視される。IllegalArgumentException
- 日付がnull
であるか、間隔または発行数が負の値の場合。addNotification(String, String, Object, Date, long, long)
public Integer addNotification(String type, String message, Object userData, Date date, long period, long nbOccurences) throws IllegalArgumentException
type
、message
、およびuserData
で新しいタイマー通知を作成し、これを指定の日付、間隔、およびオカレンス数とともに通知リストに挿入します。
挿入されるタイマー通知の日付が現在の日付より前の場合、このメソッドは、指定された日付が現在の日付であるとして動作します。
1回だけの通知は、ただちに配信されます。
定期的な通知の場合、最初の通知はただちに配信され、以降の通知は間隔パラメータで指定された間隔で配信されます。
タイマー通知が通知リストに追加されたあと、関連付けられている日付、間隔、および発行数を更新することはできません。
定期通知の場合、Timer
に指定されているようにfixed-delay実行スキームを使用します。fixed-rate実行スキームを使用するには、代わりにaddNotification(String, String, Object, Date, long, long, boolean)
を使用します。
addNotification
、インタフェース: TimerMBean
type
- タイマー通知タイプ。message
- タイマー通知の詳細メッセージ。userData
- タイマー通知のユーザー・データ・オブジェクト。date
- 通知が発行される日付。period
- タイマー通知の間隔(ミリ秒)。nbOccurences
- 発行されるタイマー通知の合計数。IllegalArgumentException
- 日付がnull
であるか、間隔または発行数が負の値の場合。addNotification(String, String, Object, Date, long, long, boolean)
public Integer addNotification(String type, String message, Object userData, Date date, long period) throws IllegalArgumentException
type
、message
、およびuserData
で新しいタイマー通知を作成し、これを指定の日付、間隔null、およびオカレンス数とともに通知リストに挿入します。
タイマー通知は、Timer
に指定されているように、fixed-delay実行スキームを使用するタイマー間隔で連続的に繰り返されます。fixed-rate実行スキームを使用するには、代わりにaddNotification(String, String, Object, Date, long, long, boolean)
を使用します。
挿入されるタイマー通知の日付が現在の日付より前の場合、このメソッドは、指定された日付が現在の日付であるとして動作します。最初の通知はただちに配信され、以降の通知は間隔パラメータで指定された間隔で配信されます。
addNotification
、インタフェース: TimerMBean
type
- タイマー通知タイプ。message
- タイマー通知の詳細メッセージ。userData
- タイマー通知のユーザー・データ・オブジェクト。date
- 通知が発行される日付。period
- タイマー通知の間隔(ミリ秒)。IllegalArgumentException
- 日付がnull
であるか、間隔が負の値の場合。public Integer addNotification(String type, String message, Object userData, Date date) throws IllegalArgumentException
type
、message
、およびuserData
で新しいタイマー通知を作成し、これを指定の日付、間隔null、およびオカレンス数とともに通知リストに挿入します。
タイマー通知は指定された日付にまとめて処理されます。
挿入されるタイマー通知の日付が現在の日付より前の場合、このメソッドは、指定された日付が現在の日付であるとして動作します。通知はただちに配信されます。
addNotification
、インタフェース: TimerMBean
type
- タイマー通知タイプ。message
- タイマー通知の詳細メッセージ。userData
- タイマー通知のユーザー・データ・オブジェクト。date
- 通知が発行される日付。IllegalArgumentException
- 日付がnull
である場合。public void removeNotification(Integer id) throws InstanceNotFoundException
removeNotification
、インタフェース: TimerMBean
id
- タイマー通知識別子。InstanceNotFoundException
- このタイマーMBeanの通知リスト内に、指定された識別子に対応するタイマー通知が存在しない。public void removeNotifications(String type) throws InstanceNotFoundException
removeNotifications
、インタフェース: TimerMBean
type
- タイマー通知タイプ。InstanceNotFoundException
- このタイマーMBeanの通知リスト内に、指定されたタイプに対応するタイマー通知が存在しない。public void removeAllNotifications()
removeAllNotifications
、インタフェース: TimerMBean
public int getNbNotifications()
getNbNotifications
、インタフェース: TimerMBean
public Vector<Integer> getAllNotificationIDs()
getAllNotificationIDs
、インタフェース: TimerMBean
Integer
オブジェクトのベクトル。public Vector<Integer> getNotificationIDs(String type)
getNotificationIDs
、インタフェース: TimerMBean
type
- タイマー通知タイプ。type
のすべてのタイマー通知識別子を含むInteger
オブジェクトのベクトル。type
のタイマー通知が登録されていない場合は空。public String getNotificationType(Integer id)
getNotificationType
、インタフェース: TimerMBean
id
- タイマー通知識別子。public String getNotificationMessage(Integer id)
getNotificationMessage
、インタフェース: TimerMBean
id
- タイマー通知識別子。public Object getNotificationUserData(Integer id)
getNotificationUserData
、インタフェース: TimerMBean
id
- タイマー通知識別子。public Date getDate(Integer id)
getDate
、インタフェース: TimerMBean
id
- タイマー通知識別子。public Long getPeriod(Integer id)
getPeriod
、インタフェース: TimerMBean
id
- タイマー通知識別子。public Long getNbOccurences(Integer id)
getNbOccurences
、インタフェース: TimerMBean
id
- タイマー通知識別子。public Boolean getFixedRate(Integer id)
getFixedRate
、インタフェース: TimerMBean
id
- タイマー通知識別子。public boolean getSendPastNotifications()
false
です。getSendPastNotifications
、インタフェース: TimerMBean
setSendPastNotifications(boolean)
public void setSendPastNotifications(boolean value)
false
です。setSendPastNotifications
、インタフェース: TimerMBean
value
- 過去の通知を送信するかどうかを指定するフラグ値。getSendPastNotifications()
public boolean isActive()
start
メソッドが呼び出されるとアクティブになります。stop
メソッドが呼び出されると非アクティブになります。false
です。isActive
、インタフェース: TimerMBean
true
、そうでない場合はfalse
。public boolean isEmpty()
isEmpty
、インタフェース: TimerMBean
true
、そうでない場合はfalse
。 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.