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, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。