// 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); } }