diff options
Diffstat (limited to 'src/org/xbill/DNS/Section.java')
-rw-r--r-- | src/org/xbill/DNS/Section.java | 92 |
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); +} + +} |