View Javadoc

1   /**
2    *
3    */
4   package javax.jmdns.impl.constants;
5   
6   /**
7    * DNS option code.
8    * 
9    * @author Arthur van Hoff, Pierre Frisch, Rick Blair
10   */
11  public enum DNSOptionCode {
12  
13      /**
14       * Token
15       */
16      Unknown("Unknown", 65535),
17      /**
18       * Long-Lived Queries Option [http://files.dns-sd.org/draft-sekar-dns-llq.txt]
19       */
20      LLQ("LLQ", 1),
21      /**
22       * Update Leases Option [http://files.dns-sd.org/draft-sekar-dns-ul.txt]
23       */
24      UL("UL", 2),
25      /**
26       * Name Server Identifier Option [RFC5001]
27       */
28      NSID("NSID", 3),
29      /**
30       * Owner Option [draft-cheshire-edns0-owner-option]
31       */
32      Owner("Owner", 4);
33  
34      private final String _externalName;
35  
36      private final int    _index;
37  
38      DNSOptionCode(String name, int index) {
39          _externalName = name;
40          _index = index;
41      }
42  
43      /**
44       * Return the string representation of this type
45       * 
46       * @return String
47       */
48      public String externalName() {
49          return _externalName;
50      }
51  
52      /**
53       * Return the numeric value of this type
54       * 
55       * @return String
56       */
57      public int indexValue() {
58          return _index;
59      }
60  
61      /**
62       * @param optioncode
63       * @return label
64       */
65      public static DNSOptionCode resultCodeForFlags(int optioncode) {
66          int maskedIndex = optioncode;
67          for (DNSOptionCode aCode : DNSOptionCode.values()) {
68              if (aCode._index == maskedIndex) return aCode;
69          }
70          return Unknown;
71      }
72  
73      @Override
74      public String toString() {
75          return this.name() + " index " + this.indexValue();
76      }
77  
78  }