001/* 002 * JGrapes Event Driven Framework 003 * Copyright (C) 2016-2018 Michael N. Lipp 004 * 005 * This program is free software; you can redistribute it and/or modify it 006 * under the terms of the GNU Affero General Public License as published by 007 * the Free Software Foundation; either version 3 of the License, or 008 * (at your option) any later version. 009 * 010 * This program is distributed in the hope that it will be useful, but 011 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 012 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License 013 * for more details. 014 * 015 * You should have received a copy of the GNU Affero General Public License along 016 * with this program; if not, see <http://www.gnu.org/licenses/>. 017 */ 018 019package org.jgrapes.core; 020 021import org.jgrapes.core.annotation.HandlerDefinition.Evaluator; 022 023/** 024 * This interface allows to verify whether a given 025 * event fired on one of the given channels is handled by a handler. 026 * Instances of this interface are provided by the 027 * {@link Evaluator}s for handler annotations. 028 */ 029public interface HandlerScope { 030 031 /** 032 * Matches the given event and channels against the criteria 033 * for events and channels of this handler scope. 034 * 035 * @param event the event 036 * @param channels the channels 037 * @return true, if successful 038 */ 039 @SuppressWarnings("PMD.UseVarargs") 040 boolean includes(Eligible event, Eligible[] channels); 041 042}