DNSRecordClass.java
Go to the documentation of this file.
00001 
00004 package javax.jmdns.impl.constants;
00005 
00006 import java.util.logging.Level;
00007 import java.util.logging.Logger;
00008 
00014 public enum DNSRecordClass {
00018     CLASS_UNKNOWN("?", 0),
00022     CLASS_IN("in", 1),
00026     CLASS_CS("cs", 2),
00030     CLASS_CH("ch", 3),
00034     CLASS_HS("hs", 4),
00038     CLASS_NONE("none", 254),
00042     CLASS_ANY("any", 255);
00043 
00044     private static Logger       logger       = Logger.getLogger(DNSRecordClass.class.getName());
00045 
00050     public static final int     CLASS_MASK   = 0x7FFF;
00051 
00056     public static final int     CLASS_UNIQUE = 0x8000;
00057 
00061     public static final boolean UNIQUE       = true;
00062 
00066     public static final boolean NOT_UNIQUE   = false;
00067 
00068     private final String        _externalName;
00069 
00070     private final int           _index;
00071 
00072     DNSRecordClass(String name, int index) {
00073         _externalName = name;
00074         _index = index;
00075     }
00076 
00082     public String externalName() {
00083         return _externalName;
00084     }
00085 
00091     public int indexValue() {
00092         return _index;
00093     }
00094 
00101     public boolean isUnique(int index) {
00102         return (this != CLASS_UNKNOWN) && ((index & CLASS_UNIQUE) != 0);
00103     }
00104 
00109     public static DNSRecordClass classForName(String name) {
00110         if (name != null) {
00111             String aName = name.toLowerCase();
00112             for (DNSRecordClass aClass : DNSRecordClass.values()) {
00113                 if (aClass._externalName.equals(aName)) return aClass;
00114             }
00115         }
00116         logger.log(Level.WARNING, "Could not find record class for name: " + name);
00117         return CLASS_UNKNOWN;
00118     }
00119 
00124     public static DNSRecordClass classForIndex(int index) {
00125         int maskedIndex = index & CLASS_MASK;
00126         for (DNSRecordClass aClass : DNSRecordClass.values()) {
00127             if (aClass._index == maskedIndex) return aClass;
00128         }
00129         logger.log(Level.WARNING, "Could not find record class for index: " + index);
00130         return CLASS_UNKNOWN;
00131     }
00132 
00133     @Override
00134     public String toString() {
00135         return this.name() + " index " + this.indexValue();
00136     }
00137 
00138 }


zeroconf_jmdns_suite
Author(s): Daniel Stonier
autogenerated on Thu Aug 27 2015 15:50:27