1 /*
2 * Copyright 2016 The Netty Project
3 *
4 * The Netty Project licenses this file to you under the Apache License, version 2.0 (the
5 * "License"); you may not use this file except in compliance with the License. You may obtain a
6 * copy of the License at:
7 *
8 * https://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software distributed under the License
11 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12 * or implied. See the License for the specific language governing permissions and limitations under
13 * the License.
14 */
15
16 package io.netty.handler.codec.redis;
17
18 import io.netty.util.internal.StringUtil;
19 import io.netty.util.internal.UnstableApi;
20
21 /**
22 * Header of Redis Array Message.
23 */
24 @UnstableApi
25 public class ArrayHeaderRedisMessage implements RedisMessage {
26
27 private final long length;
28
29 /**
30 * Creates a {@link ArrayHeaderRedisMessage} for the given {@code length}.
31 */
32 public ArrayHeaderRedisMessage(long length) {
33 if (length < RedisConstants.NULL_VALUE) {
34 throw new RedisCodecException("length: " + length + " (expected: >= " + RedisConstants.NULL_VALUE + ")");
35 }
36 this.length = length;
37 }
38
39 /**
40 * Get length of this array object.
41 */
42 public final long length() {
43 return length;
44 }
45
46 /**
47 * Returns whether the content of this message is {@code null}.
48 *
49 * @return indicates whether the content of this message is {@code null}.
50 */
51 public boolean isNull() {
52 return length == RedisConstants.NULL_VALUE;
53 }
54
55 @Override
56 public String toString() {
57 return new StringBuilder(StringUtil.simpleClassName(this))
58 .append('[')
59 .append("length=")
60 .append(length)
61 .append(']').toString();
62 }
63 }