aboutsummaryrefslogtreecommitdiff
path: root/src/org/xbill/DNS/Section.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/xbill/DNS/Section.java')
-rw-r--r--src/org/xbill/DNS/Section.java92
1 files changed, 92 insertions, 0 deletions
diff --git a/src/org/xbill/DNS/Section.java b/src/org/xbill/DNS/Section.java
new file mode 100644
index 0000000..e0c8caa
--- /dev/null
+++ b/src/org/xbill/DNS/Section.java
@@ -0,0 +1,92 @@
+// Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org)
+
+package org.xbill.DNS;
+
+/**
+ * Constants and functions relating to DNS message sections
+ *
+ * @author Brian Wellington
+ */
+
+public final class Section {
+
+/** The question (first) section */
+public static final int QUESTION = 0;
+
+/** The answer (second) section */
+public static final int ANSWER = 1;
+
+/** The authority (third) section */
+public static final int AUTHORITY = 2;
+
+/** The additional (fourth) section */
+public static final int ADDITIONAL = 3;
+
+/* Aliases for dynamic update */
+/** The zone (first) section of a dynamic update message */
+public static final int ZONE = 0;
+
+/** The prerequisite (second) section of a dynamic update message */
+public static final int PREREQ = 1;
+
+/** The update (third) section of a dynamic update message */
+public static final int UPDATE = 2;
+
+private static Mnemonic sections = new Mnemonic("Message Section",
+ Mnemonic.CASE_LOWER);
+private static String [] longSections = new String[4];
+private static String [] updateSections = new String[4];
+
+static {
+ sections.setMaximum(3);
+ sections.setNumericAllowed(true);
+
+ sections.add(QUESTION, "qd");
+ sections.add(ANSWER, "an");
+ sections.add(AUTHORITY, "au");
+ sections.add(ADDITIONAL, "ad");
+
+ longSections[QUESTION] = "QUESTIONS";
+ longSections[ANSWER] = "ANSWERS";
+ longSections[AUTHORITY] = "AUTHORITY RECORDS";
+ longSections[ADDITIONAL] = "ADDITIONAL RECORDS";
+
+ updateSections[ZONE] = "ZONE";
+ updateSections[PREREQ] = "PREREQUISITES";
+ updateSections[UPDATE] = "UPDATE RECORDS";
+ updateSections[ADDITIONAL] = "ADDITIONAL RECORDS";
+}
+
+private
+Section() {}
+
+/** Converts a numeric Section into an abbreviation String */
+public static String
+string(int i) {
+ return sections.getText(i);
+}
+
+/** Converts a numeric Section into a full description String */
+public static String
+longString(int i) {
+ sections.check(i);
+ return longSections[i];
+}
+
+/**
+ * Converts a numeric Section into a full description String for an update
+ * Message.
+ */
+public static String
+updString(int i) {
+ sections.check(i);
+ return updateSections[i];
+}
+
+/** Converts a String representation of a Section into its numeric value */
+public static int
+value(String s) {
+ return sections.getValue(s);
+}
+
+}