View Javadoc
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  }