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