1 /* 2 * Copyright (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.com 3 * The software in this package is published under the terms of the CPAL v1.0 4 * license, a copy of which has been included with this distribution in the 5 * LICENSE.txt file. 6 */ 7 package org.mule.context.notification; 8 9 import org.mule.api.context.notification.ServerNotification; 10 11 /** 12 * An implementation detail - this enforces the guarantee that once 13 * {@link Node#serial(RestrictedNode)} is called, {@link Node#parallel(RestrictedNode)} cannot be. 14 */ 15 interface RestrictedNode 16 { 17 18 public RestrictedNode serial(RestrictedNode node); 19 20 public int match(ServerNotification notification); 21 22 public boolean contains(Class clazz, int action); 23 24 public boolean isExhausted(); 25 26 /** 27 * @return Any remaining node 28 */ 29 public RestrictedNode getAnyRemaining(); 30 31 Class getNotificationClass(); 32 33 }