1 // 2 // ======================================================================== 3 // Copyright (c) 1995-2015 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 * @param timestamp the timestamp to match 62 * @return true to trigger an event 63 * @throws Exception if unable to match 64 */ 65 public abstract boolean match(long timestamp) throws Exception; 66 67 /* ------------------------------------------------------------ */ 68 /** 69 * Retrieve the event state associated with specified invocation 70 * of the event trigger match method 71 * 72 * @param timestamp time stamp associated with invocation 73 * @return event state or null if not found 74 */ 75 public abstract EventState<?> getState(long timestamp); 76 }