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.UnstableApi;
19  
20  /**
21   * The header of Bulk Strings in <a href="https://redis.io/topics/protocol">RESP</a>.
22   */
23  @UnstableApi
24  public class BulkStringHeaderRedisMessage implements RedisMessage {
25  
26      private final int bulkStringLength;
27  
28      /**
29       * Creates a {@link BulkStringHeaderRedisMessage}.
30       *
31       * @param bulkStringLength follow content length.
32       */
33      public BulkStringHeaderRedisMessage(int bulkStringLength) {
34          if (bulkStringLength <= 0) {
35              throw new RedisCodecException("bulkStringLength: " + bulkStringLength + " (expected: > 0)");
36          }
37          this.bulkStringLength = bulkStringLength;
38      }
39  
40      /**
41       * Return {@code bulkStringLength} for this content.
42       */
43      public final int bulkStringLength() {
44          return bulkStringLength;
45      }
46  
47      /**
48       * Returns whether the content of this message is {@code null}.
49       *
50       * @return indicates whether the content of this message is {@code null}.
51       */
52      public boolean isNull() {
53          return bulkStringLength == RedisConstants.NULL_VALUE;
54      }
55  }