001 /*
002 * Licensed to the Apache Software Foundation (ASF) under one or more
003 * contributor license agreements. See the NOTICE file distributed with
004 * this work for additional information regarding copyright ownership.
005 * The ASF licenses this file to You under the Apache License, Version 2.0
006 * (the "License"); you may not use this file except in compliance with
007 * the License. You may obtain a copy of the License at
008 *
009 * http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017 package org.apache.servicemix.soap.api;
018
019 import java.util.Set;
020
021
022 public interface Interceptor {
023
024 /**
025 * Intercepts a message.
026 * Interceptors need NOT invoke handleMessage or handleFault
027 * on the next interceptor - the interceptor chain will
028 * take care of this.
029 *
030 * @param message
031 */
032 void handleMessage(Message message);
033
034 /**
035 * Called for all interceptors (in reverse order) on which handleMessage
036 * had been successfully invoked, when normal execution of the chain was
037 * aborted for some reason.
038 *
039 * @param message
040 */
041 void handleFault(Message message);
042
043 /**
044 * A Set of IDs that this interceptor needs to run after.
045 * @return
046 */
047 Set<String> getAfter();
048
049 /**
050 * A Set of IDs that this interceptor needs to run before.
051 * @return
052 */
053 Set<String> getBefore();
054
055 /**
056 * The ID of the interceptor.
057 * @return
058 */
059 String getId();
060
061 }