| /* |
| * Copyright 1999,2004-2005 The Apache Software Foundation. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package org.apache.catalina.tribes.transport.bio.util; |
| |
| import org.apache.catalina.tribes.ChannelMessage; |
| import org.apache.catalina.tribes.ErrorHandler; |
| import org.apache.catalina.tribes.Member; |
| import org.apache.catalina.tribes.group.InterceptorPayload; |
| |
| /** |
| * The class <b>LinkObject</b> implements an element |
| * for a linked list, consisting of a general |
| * data object and a pointer to the next element. |
| * |
| * @author Rainer Jung |
| * @author Peter Rossbach |
| * @author Filip Hanik |
| * @version $Revision: 304032 $ $Date: 2005-07-27 10:11:55 -0500 (Wed, 27 Jul 2005) $ |
| |
| */ |
| |
| public class LinkObject { |
| |
| private ChannelMessage msg; |
| private LinkObject next; |
| private byte[] key ; |
| private Member[] destination; |
| private InterceptorPayload payload; |
| |
| /** |
| * Construct a new element from the data object. |
| * Sets the pointer to null. |
| * |
| * @param key The key |
| * @param payload The data object. |
| */ |
| public LinkObject(ChannelMessage msg, Member[] destination, InterceptorPayload payload) { |
| this.msg = msg; |
| this.next = null; |
| this.key = msg.getUniqueId(); |
| this.payload = payload; |
| this.destination = destination; |
| } |
| |
| /** |
| * Set the next element. |
| * @param next The next element. |
| */ |
| public void append(LinkObject next) { |
| this.next = next; |
| } |
| |
| /** |
| * Get the next element. |
| * @return The next element. |
| */ |
| public LinkObject next() { |
| return next; |
| } |
| |
| public void setNext(LinkObject next) { |
| this.next = next; |
| } |
| |
| /** |
| * Get the data object from the element. |
| * @return The data object from the element. |
| */ |
| public ChannelMessage data() { |
| return msg; |
| } |
| |
| /** |
| * Get the unique message id |
| * @return the unique message id |
| */ |
| public byte[] getKey() { |
| return key; |
| } |
| |
| public ErrorHandler getHandler() { |
| return payload!=null?payload.getErrorHandler():null; |
| } |
| |
| public InterceptorPayload getPayload() { |
| return payload; |
| } |
| |
| public Member[] getDestination() { |
| return destination; |
| } |
| |
| } |