View Javadoc

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