| // |
| // ======================================================================== |
| // Copyright (c) 1995-2017 Mort Bay Consulting Pty. Ltd. |
| // ------------------------------------------------------------------------ |
| // All rights reserved. This program and the accompanying materials |
| // are made available under the terms of the Eclipse Public License v1.0 |
| // and Apache License v2.0 which accompanies this distribution. |
| // |
| // The Eclipse Public License is available at |
| // http://www.eclipse.org/legal/epl-v10.html |
| // |
| // The Apache License v2.0 is available at |
| // http://www.opensource.org/licenses/apache2.0.php |
| // |
| // You may elect to redistribute this code under either of these licenses. |
| // ======================================================================== |
| // |
| |
| |
| package org.eclipse.jetty.monitor.jmx; |
| |
| import static java.util.UUID.randomUUID; |
| |
| /* ------------------------------------------------------------ */ |
| /** |
| * EventTrigger |
| * |
| * Abstract base class for all EventTrigger implementations. |
| * Used to determine whether the necessary conditions for |
| * triggering an event are present. |
| */ |
| public abstract class EventTrigger |
| { |
| private final String _id; |
| |
| /* ------------------------------------------------------------ */ |
| /** |
| * Construct an event trigger |
| */ |
| public EventTrigger() |
| { |
| _id = randomUUID().toString(); |
| } |
| |
| /* ------------------------------------------------------------ */ |
| /** |
| * Retrieve the identification string of the event trigger |
| * |
| * @return unique identification string |
| */ |
| public String getID() |
| { |
| return _id; |
| } |
| |
| /* ------------------------------------------------------------ */ |
| /** |
| * Abstract method to verify if the event trigger conditions |
| * are in the appropriate state for an event to be triggered |
| * |
| * @param timestamp the timestamp to match |
| * @return true to trigger an event |
| * @throws Exception if unable to match |
| */ |
| public abstract boolean match(long timestamp) throws Exception; |
| |
| /* ------------------------------------------------------------ */ |
| /** |
| * Retrieve the event state associated with specified invocation |
| * of the event trigger match method |
| * |
| * @param timestamp time stamp associated with invocation |
| * @return event state or null if not found |
| */ |
| public abstract EventState<?> getState(long timestamp); |
| } |