1 /*
2  * Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved.
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * This code is free software; you can redistribute it and/or modify it
6  * under the terms of the GNU General Public License version 2 only, as
7  * published by the Free Software Foundation.  Oracle designates this
8  * particular file as subject to the "Classpath" exception as provided
9  * by Oracle in the LICENSE file that accompanied this code.
10  *
11  * This code is distributed in the hope that it will be useful, but WITHOUT
12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14  * version 2 for more details (a copy is included in the LICENSE file that
15  * accompanied this code).
16  *
17  * You should have received a copy of the GNU General Public License version
18  * 2 along with this work; if not, write to the Free Software Foundation,
19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20  *
21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22  * or visit www.oracle.com if you need additional information or have any
23  * questions.
24  */
25 
26 package sun.jvmstat.monitor.event;
27 
28 import java.util.Set;
29 import sun.jvmstat.monitor.MonitoredHost;
30 
31 /**
32  * Provides a description of a change in status of the Java Virtual Machines
33  * associated with a MonitoredHost.
34  *
35  * @author Brian Doherty
36  * @since 1.5
37  */
38 @SuppressWarnings("serial") // JDK implementation class
39 public class VmStatusChangeEvent extends HostEvent {
40 
41     /**
42      * The set of currently active Java Virtual Machines for the MonitoredHost.
43      * The set contains an Integer object holding the <em>lvmid</em> for each
44      * active Java Virtual Machine on the MonitoredHost. This Set will only
45      * contain Integer objects.
46      */
47     protected Set<Integer> active;
48 
49     /**
50      * The set of Java Virtual Machines started on MonitoredHost since the
51      * previous event. The set contains an Integer object holding the
52      * <em>lvmid</em> for each Java Virtual Machine started on the
53      * MonitoredHost. This Set will only contain Integer objects.
54      */
55     protected Set<Integer> started;
56 
57     /**
58      * The set of Java Virtual Machines terminated on MonitoredHost since the
59      * previous event. The set contains an Integer object holding the
60      * <em>lvmid</em> for each Java Virtual Machine started on the
61      * MonitoredHost. This Set will only contain Integer objects.
62      */
63     protected Set<Integer> terminated;
64 
65     /**
66      * Construct a new VmStatusChangeEvent instance.
67      *
68      * @param host the MonitoredHost that is the source of the event.
69      * @param active the set of currently active Java Virtual Machines
70      * @param started the set of Java Virtual Machines started since the
71      *                last event.
72      * @param terminated the set of Java Virtual Machines terminated since
73      *                   the last event.
74      */
VmStatusChangeEvent(MonitoredHost host, Set<Integer> active, Set<Integer> started, Set<Integer> terminated)75     public VmStatusChangeEvent(MonitoredHost host, Set<Integer> active,
76                                Set<Integer> started, Set<Integer> terminated) {
77         super(host);
78         this.active = active;
79         this.started = started;
80         this.terminated = terminated;
81     }
82 
83     /**
84      * Return the set of currently active Java Virtual Machines.
85      * The set contains an Integer object holding the <em>lvmid</em> for each
86      * active Java Virtual Machine on the MonitoredHost.
87      *
88      * @return Set - a set of Integer objects containing the <em>lvmid</em>
89      *               of each active Java Virtual Machine on the host. If
90      *               there are no active Java Virtual Machines on the host,
91      *               an empty Set is returned.
92      */
getActive()93     public Set<Integer> getActive() {
94         return active;
95     }
96 
97     /**
98      * Return the set of Java Virtual Machines started since the last
99      * event notification. The set contains an Integer object holding
100      * the <em>lvmid</em> for each Java Virtual Machine started on the
101      * MonitoredHost since the last event notification.
102      *
103      * @return Set - a set of Integer objects containing the <em>lvmid</em>
104      *               of each Java Virtual Machine started on the host. If
105      *               no Java Virtual Machines were recently started on the
106      *               host, an empty Set is returned.
107      */
getStarted()108     public Set<Integer> getStarted() {
109         return started;
110     }
111 
112     /**
113      * Return the set of Java Virtual Machines terminated since the last
114      * event notification. The set contains an Integer object holding
115      * the <em>lvmid</em> for each Java Virtual Machine terminated on the
116      * MonitoredHost since the last event notification.
117      *
118      * @return Set - a set of Integer objects containing the <em>lvmid</em>
119      *               of each Java Virtual Machine terminated on the host. If
120      *               no Java Virtual Machines were recently terminated on the
121      *               host, an empty Set is returned.
122      */
getTerminated()123     public Set<Integer> getTerminated() {
124         return terminated;
125     }
126 }
127