blob: 22180cf4a8e7d9d26c1227574c07efa5fc5d4fe4 [file] [log] [blame]
Shuyi Chend7955ce2013-05-22 14:51:55 -07001// Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org)
2
3package org.xbill.DNS;
4
5/**
6 * Constants and functions relating to DNS classes. This is called DClass
7 * to avoid confusion with Class.
8 *
9 * @author Brian Wellington
10 */
11
12public final class DClass {
13
14/** Internet */
15public static final int IN = 1;
16
17/** Chaos network (MIT) */
18public static final int CH = 3;
19
20/** Chaos network (MIT, alternate name) */
21public static final int CHAOS = 3;
22
23/** Hesiod name server (MIT) */
24public static final int HS = 4;
25
26/** Hesiod name server (MIT, alternate name) */
27public static final int HESIOD = 4;
28
29/** Special value used in dynamic update messages */
30public static final int NONE = 254;
31
32/** Matches any class */
33public static final int ANY = 255;
34
35private static class DClassMnemonic extends Mnemonic {
36 public
37 DClassMnemonic() {
38 super("DClass", CASE_UPPER);
39 setPrefix("CLASS");
40 }
41
42 public void
43 check(int val) {
44 DClass.check(val);
45 }
46}
47
48private static Mnemonic classes = new DClassMnemonic();
49
50static {
51 classes.add(IN, "IN");
52 classes.add(CH, "CH");
53 classes.addAlias(CH, "CHAOS");
54 classes.add(HS, "HS");
55 classes.addAlias(HS, "HESIOD");
56 classes.add(NONE, "NONE");
57 classes.add(ANY, "ANY");
58}
59
60private
61DClass() {}
62
63/**
64 * Checks that a numeric DClass is valid.
65 * @throws InvalidDClassException The class is out of range.
66 */
67public static void
68check(int i) {
69 if (i < 0 || i > 0xFFFF)
70 throw new InvalidDClassException(i);
71}
72
73/**
74 * Converts a numeric DClass into a String
75 * @return The canonical string representation of the class
76 * @throws InvalidDClassException The class is out of range.
77 */
78public static String
79string(int i) {
80 return classes.getText(i);
81}
82
83/**
84 * Converts a String representation of a DClass into its numeric value
85 * @return The class code, or -1 on error.
86 */
87public static int
88value(String s) {
89 return classes.getValue(s);
90}
91
92}