01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one
03: * or more contributor license agreements. See the NOTICE file
04: * distributed with this work for additional information
05: * regarding copyright ownership. The ASF licenses this file
06: * to you under the Apache License, Version 2.0 (the
07: * "License"); you may not use this file except in compliance
08: * with the License. You may obtain a copy of the License at
09: *
10: * http://www.apache.org/licenses/LICENSE-2.0
11: *
12: * Unless required by applicable law or agreed to in writing,
13: * software distributed under the License is distributed on an
14: * * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15: * KIND, either express or implied. See the License for the
16: * specific language governing permissions and limitations
17: * under the License.
18: */
19:
20: package org.apache.synapse;
21:
22: import org.apache.synapse.MessageContext;
23:
24: /**
25: * All Synapse mediators must implement this Mediator interface. As a message passes
26: * through the Synapse system, each mediator's mediate() method is invoked in the
27: * sequence/order defined in the SynapseConfiguration.
28: */
29: public interface Mediator {
30:
31: /**
32: * Invokes the mediator passing the current message for mediation. Each
33: * mediator performs its mediation action, and returns true if mediation
34: * should continue, or false if further mediation should be aborted.
35: *
36: * @param synCtx the current message for mediation
37: * @return true if further mediation should continue
38: */
39: public boolean mediate(MessageContext synCtx);
40:
41: /**
42: * This is used for debugging purposes and exposes the type of the current
43: * mediator for logging and debugging purposes
44: * @return a String representation of the mediator type
45: */
46: public String getType();
47:
48: /**
49: * This is used to check whether the tracing should be enabled on the current mediator or not
50: * @return value that indicate whether tracing is on, off or unset
51: */
52: public int getTraceState();
53:
54: /**
55: * This is used to set the value of tracing enable variable
56: * @param traceState Set whether the tracing is enabled or not
57: */
58: public void setTraceState(int traceState);
59: }
|