1 /*
2 * Licensed to the Apache Software Foundation (ASF) under one
3 * or more contributor license agreements. See the NOTICE file
4 * distributed with this work for additional information
5 * regarding copyright ownership. The ASF licenses this file
6 * to you under the Apache License, Version 2.0 (the
7 * "License"); you may not use this file except in compliance
8 * with the License. You may obtain a copy of the License at
9 *
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.mina.core.write;
21
22 import java.net.SocketAddress;
23
24 import org.apache.mina.core.future.WriteFuture;
25
26 /**
27 * A wrapper for an existing {@link WriteRequest}.
28 *
29 * @author <a href="http://mina.apache.org">Apache MINA Project</a>
30 */
31 public class WriteRequestWrapper implements WriteRequest {
32
33 private final WriteRequest parentRequest;
34
35 /**
36 * Creates a new instance that wraps the specified request.
37 */
38 public WriteRequestWrapper(WriteRequest parentRequest) {
39 if (parentRequest == null) {
40 throw new NullPointerException("parentRequest");
41 }
42 this.parentRequest = parentRequest;
43 }
44
45 public SocketAddress getDestination() {
46 return parentRequest.getDestination();
47 }
48
49 public WriteFuture getFuture() {
50 return parentRequest.getFuture();
51 }
52
53 public Object getMessage() {
54 return parentRequest.getMessage();
55 }
56
57 public WriteRequest getOriginalRequest() {
58 return parentRequest.getOriginalRequest();
59 }
60
61 /**
62 * Returns the wrapped request object.
63 */
64 public WriteRequest getParentRequest() {
65 return parentRequest;
66 }
67
68 @Override
69 public String toString() {
70 if (getDestination() == null) {
71 return getMessage().toString();
72 }
73
74 return getMessage().toString() + " => " + getDestination();
75 }
76 }