aboutsummaryrefslogtreecommitdiff
path: root/src/org/xbill/DNS/DClass.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/xbill/DNS/DClass.java')
-rw-r--r--src/org/xbill/DNS/DClass.java92
1 files changed, 92 insertions, 0 deletions
diff --git a/src/org/xbill/DNS/DClass.java b/src/org/xbill/DNS/DClass.java
new file mode 100644
index 0000000..22180cf
--- /dev/null
+++ b/src/org/xbill/DNS/DClass.java
@@ -0,0 +1,92 @@
+// Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org)
+
+package org.xbill.DNS;
+
+/**
+ * Constants and functions relating to DNS classes. This is called DClass
+ * to avoid confusion with Class.
+ *
+ * @author Brian Wellington
+ */
+
+public final class DClass {
+
+/** Internet */
+public static final int IN = 1;
+
+/** Chaos network (MIT) */
+public static final int CH = 3;
+
+/** Chaos network (MIT, alternate name) */
+public static final int CHAOS = 3;
+
+/** Hesiod name server (MIT) */
+public static final int HS = 4;
+
+/** Hesiod name server (MIT, alternate name) */
+public static final int HESIOD = 4;
+
+/** Special value used in dynamic update messages */
+public static final int NONE = 254;
+
+/** Matches any class */
+public static final int ANY = 255;
+
+private static class DClassMnemonic extends Mnemonic {
+ public
+ DClassMnemonic() {
+ super("DClass", CASE_UPPER);
+ setPrefix("CLASS");
+ }
+
+ public void
+ check(int val) {
+ DClass.check(val);
+ }
+}
+
+private static Mnemonic classes = new DClassMnemonic();
+
+static {
+ classes.add(IN, "IN");
+ classes.add(CH, "CH");
+ classes.addAlias(CH, "CHAOS");
+ classes.add(HS, "HS");
+ classes.addAlias(HS, "HESIOD");
+ classes.add(NONE, "NONE");
+ classes.add(ANY, "ANY");
+}
+
+private
+DClass() {}
+
+/**
+ * Checks that a numeric DClass is valid.
+ * @throws InvalidDClassException The class is out of range.
+ */
+public static void
+check(int i) {
+ if (i < 0 || i > 0xFFFF)
+ throw new InvalidDClassException(i);
+}
+
+/**
+ * Converts a numeric DClass into a String
+ * @return The canonical string representation of the class
+ * @throws InvalidDClassException The class is out of range.
+ */
+public static String
+string(int i) {
+ return classes.getText(i);
+}
+
+/**
+ * Converts a String representation of a DClass into its numeric value
+ * @return The class code, or -1 on error.
+ */
+public static int
+value(String s) {
+ return classes.getValue(s);
+}
+
+}