View Javadoc
1   /*
2    * Copyright 2015 The Netty Project
3    *
4    * The Netty Project licenses this file to you under the Apache License,
5    * version 2.0 (the "License"); you may not use this file except in compliance
6    * with the License. You may obtain a 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
11   * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12   * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13   * License for the specific language governing permissions and limitations
14   * under the License.
15   */
16  package io.netty.handler.codec.dns;
17  
18  import io.netty.util.internal.StringUtil;
19  
20  /**
21   * The default {@link DnsQuestion} implementation.
22   */
23  public class DefaultDnsQuestion extends AbstractDnsRecord implements DnsQuestion {
24  
25      /**
26       * Creates a new {@link #CLASS_IN IN-class} question.
27       *
28       * @param name the domain name of the DNS question
29       * @param type the type of the DNS question
30       */
31      public DefaultDnsQuestion(String name, DnsRecordType type) {
32          super(name, type, 0);
33      }
34  
35      /**
36       * Creates a new question.
37       *
38       * @param name the domain name of the DNS question
39       * @param type the type of the DNS question
40       * @param dnsClass the class of the record, usually one of the following:
41       *                 <ul>
42       *                     <li>{@link #CLASS_IN}</li>
43       *                     <li>{@link #CLASS_CSNET}</li>
44       *                     <li>{@link #CLASS_CHAOS}</li>
45       *                     <li>{@link #CLASS_HESIOD}</li>
46       *                     <li>{@link #CLASS_NONE}</li>
47       *                     <li>{@link #CLASS_ANY}</li>
48       *                 </ul>
49       */
50      public DefaultDnsQuestion(String name, DnsRecordType type, int dnsClass) {
51          super(name, type, dnsClass, 0);
52      }
53  
54      @Override
55      public String toString() {
56          StringBuilder buf = new StringBuilder(64);
57  
58          buf.append(StringUtil.simpleClassName(this))
59             .append('(')
60             .append(name())
61             .append(' ');
62  
63          DnsMessageUtil.appendRecordClass(buf, dnsClass())
64                        .append(' ')
65                        .append(type().name())
66                        .append(')');
67  
68          return buf.toString();
69      }
70  }