13742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman/** 23742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * 33742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman */ 43742d9db8b6edb10627b0f89336cca5249f1d15aManuel Romanpackage javax.jmdns.impl.constants; 53742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman 63742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman/** 73742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * DNS option code. 83742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * 93742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * @author Arthur van Hoff, Pierre Frisch, Rick Blair 103742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman */ 113742d9db8b6edb10627b0f89336cca5249f1d15aManuel Romanpublic enum DNSOptionCode { 123742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman 133742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman /** 143742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * Token 153742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman */ 163742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman Unknown("Unknown", 65535), 173742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman /** 183742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * Long-Lived Queries Option [http://files.dns-sd.org/draft-sekar-dns-llq.txt] 193742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman */ 203742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman LLQ("LLQ", 1), 213742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman /** 223742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * Update Leases Option [http://files.dns-sd.org/draft-sekar-dns-ul.txt] 233742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman */ 243742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman UL("UL", 2), 253742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman /** 263742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * Name Server Identifier Option [RFC5001] 273742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman */ 283742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman NSID("NSID", 3), 293742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman /** 303742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * Owner Option [draft-cheshire-edns0-owner-option] 313742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman */ 323742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman Owner("Owner", 4); 333742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman 343742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman private final String _externalName; 353742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman 363742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman private final int _index; 373742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman 383742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman DNSOptionCode(String name, int index) { 393742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman _externalName = name; 403742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman _index = index; 413742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman } 423742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman 433742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman /** 443742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * Return the string representation of this type 453742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * 463742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * @return String 473742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman */ 483742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman public String externalName() { 493742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman return _externalName; 503742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman } 513742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman 523742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman /** 533742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * Return the numeric value of this type 543742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * 553742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * @return String 563742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman */ 573742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman public int indexValue() { 583742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman return _index; 593742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman } 603742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman 613742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman /** 623742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * @param optioncode 633742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * @return label 643742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman */ 653742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman public static DNSOptionCode resultCodeForFlags(int optioncode) { 663742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman int maskedIndex = optioncode; 673742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman for (DNSOptionCode aCode : DNSOptionCode.values()) { 683742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman if (aCode._index == maskedIndex) return aCode; 693742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman } 703742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman return Unknown; 713742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman } 723742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman 733742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman @Override 743742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman public String toString() { 753742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman return this.name() + " index " + this.indexValue(); 763742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman } 773742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman 783742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman} 79