View Javadoc

1   //
2   //  ========================================================================
3   //  Copyright (c) 1995-2013 Mort Bay Consulting Pty. Ltd.
4   //  ------------------------------------------------------------------------
5   //  All rights reserved. This program and the accompanying materials
6   //  are made available under the terms of the Eclipse Public License v1.0
7   //  and Apache License v2.0 which accompanies this distribution.
8   //
9   //      The Eclipse Public License is available at
10  //      http://www.eclipse.org/legal/epl-v10.html
11  //
12  //      The Apache License v2.0 is available at
13  //      http://www.opensource.org/licenses/apache2.0.php
14  //
15  //  You may elect to redistribute this code under either of these licenses.
16  //  ========================================================================
17  //
18  
19  
20  package org.eclipse.jetty.monitor.jmx;
21  
22  import static java.util.UUID.randomUUID;
23  
24  /* ------------------------------------------------------------ */
25  /**
26   * EventTrigger
27   * 
28   * Abstract base class for all EventTrigger implementations.
29   * Used to determine whether the necessary conditions for  
30   * triggering an event are present.
31   */
32  public abstract class EventTrigger
33  {
34      private final String _id;
35      
36      /* ------------------------------------------------------------ */
37      /**
38       * Construct an event trigger
39       */
40      public EventTrigger()
41      {
42          _id = randomUUID().toString();
43      }
44      
45      /* ------------------------------------------------------------ */
46      /**
47       * Retrieve the identification string of the event trigger
48       * 
49       * @return unique identification string
50       */
51      public String getID()
52      {
53          return _id;
54      }
55      
56      /* ------------------------------------------------------------ */
57      /**
58       * Abstract method to verify if the event trigger conditions
59       * are in the appropriate state for an event to be triggered
60       * 
61       * @return true to trigger an event
62       */
63      public abstract boolean match(long timestamp) throws Exception;
64  
65      /* ------------------------------------------------------------ */
66      /**
67       * Retrieve the event state associated with specified invocation
68       * of the event trigger match method
69       * 
70       * @param timestamp time stamp associated with invocation
71       * @return event state or null if not found
72       */
73      public abstract EventState<?> getState(long timestamp);
74  }