Package org.xbill.DNS
Class Name
java.lang.Object
org.xbill.DNS.Name
- All Implemented Interfaces:
Serializable,Comparable<Name>
A representation of a domain name. It may either be absolute (fully qualified) or relative.
- Author:
- Brian Wellington
- See Also:
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionName(byte[] b) Create a new name from DNS wire formatCreate a new name from a string.Create a new name from a string and an origin.Create a new name from DNS a wire format messageCreate a new name by removing labels from the beginning of an existing Name -
Method Summary
Modifier and TypeMethodDescriptionReturns a canonicalized version of the Name (all lowercase).intCompares this Name to another Object.static Nameconcatenate(Name prefix, Name suffix) Creates a new name by concatenating two existing names.booleanAre these two Names equivalent?static NameCreate a new name from a constant string.fromDNAME(DNAMERecord dname) Generates a new Name to be used when following a DNAME.static NamefromString(String s) Create a new name from a string.static NamefromString(String s, Name origin) Create a new name from a string and an origin.byte[]getLabel(int n) Retrieve the nth label of a Name.getLabelString(int n) Convert the nth label in a Name to a StringinthashCode()Computes a hashcode based on the valuebooleanIs this name absolute?booleanisWild()Is this name a wildcard?intlabels()The number of labels in the name.shortlength()The length of the name (in bytes).relativize(Name origin) If this name is a subdomain of origin, return a new name relative to origin with the same value.booleantoString()Convert a Name to a StringtoString(boolean omitFinalDot) Convert a Name to a Stringbyte[]toWire()Emit a Name in DNS wire formatvoidtoWire(DNSOutput out, Compression c) Emit a Name in DNS wire formatvoidtoWire(DNSOutput out, Compression c, boolean canonical) Emit a Name in DNS wire formatbyte[]Emit a Name in canonical DNS wire format (all lowercase)voidtoWireCanonical(DNSOutput out) Emit a Name in canonical DNS wire format (all lowercase)wild(int n) Generates a new Name with the first n labels replaced by a wildcard
-
Field Details
-
root
The root name -
empty
The root name
-
-
Constructor Details
-
Name
Create a new name from a string and an origin. This does not automatically make the name absolute; it will be absolute if it has a trailing dot or an absolute origin is appended.- Parameters:
s- The string to be convertedorigin- If the name is not absolute, the origin to be appended.- Throws:
TextParseException- The name is invalid.
-
Name
Create a new name from a string. This does not automatically make the name absolute; it will be absolute if it has a trailing dot.- Parameters:
s- The string to be converted- Throws:
TextParseException- The name is invalid.
-
Name
Create a new name from DNS a wire format message- Parameters:
in- A stream containing the DNS message which is currently positioned at the start of the name to be read.- Throws:
WireParseException
-
Name
Create a new name from DNS wire format- Parameters:
b- A byte array containing the wire format of the name.- Throws:
IOException
-
Name
Create a new name by removing labels from the beginning of an existing Name- Parameters:
src- An existing Namen- The number of labels to remove from the beginning in the copy
-
-
Method Details
-
fromString
Create a new name from a string and an origin. This does not automatically make the name absolute; it will be absolute if it has a trailing dot or an absolute origin is appended. This is identical to the constructor, except that it will avoid creating new objects in some cases.- Parameters:
s- The string to be convertedorigin- If the name is not absolute, the origin to be appended.- Throws:
TextParseException- The name is invalid.
-
fromString
Create a new name from a string. This does not automatically make the name absolute; it will be absolute if it has a trailing dot. This is identical to the constructor, except that it will avoid creating new objects in some cases.- Parameters:
s- The string to be converted- Throws:
TextParseException- The name is invalid.
-
fromConstantString
Create a new name from a constant string. This should only be used when the name is known to be good - that is, when it is constant.- Parameters:
s- The string to be converted- Throws:
IllegalArgumentException- The name is invalid.
-
concatenate
Creates a new name by concatenating two existing names. If theprefixname is absoluteprefixis returned unmodified.- Parameters:
prefix- The prefix name. Must be relative.suffix- The suffix name.- Returns:
- The concatenated name.
- Throws:
NameTooLongException- The name is too long.
-
relativize
If this name is a subdomain of origin, return a new name relative to origin with the same value. Otherwise, return the existing name.- Parameters:
origin- The origin to remove.- Returns:
- The possibly relativized name.
-
wild
Generates a new Name with the first n labels replaced by a wildcard- Returns:
- The wildcard name
-
canonicalize
Returns a canonicalized version of the Name (all lowercase). This may be the same name, if the input Name is already canonical. -
fromDNAME
Generates a new Name to be used when following a DNAME.- Parameters:
dname- The DNAME record to follow.- Returns:
- The constructed name or
nullif this Name is not a subdomain of thednamename. - Throws:
NameTooLongException- The resulting name is too long.
-
isWild
public boolean isWild()Is this name a wildcard? -
isAbsolute
public boolean isAbsolute()Is this name absolute? -
length
public short length()The length of the name (in bytes). -
labels
public int labels()The number of labels in the name. -
subdomain
-
toString
Convert a Name to a String- Parameters:
omitFinalDot- If true, and the name is absolute, omit the final dot.- Returns:
- The representation of this name as a (printable) String.
-
toString
Convert a Name to a String -
getLabel
public byte[] getLabel(int n) Retrieve the nth label of a Name. This makes a copy of the label; changing this does not change the Name. The returned byte array includes the label length as the first byte.- Parameters:
n- The label to be retrieved. The first label is 0.
-
getLabelString
Convert the nth label in a Name to a String- Parameters:
n- The label to be converted to a (printable) String. The first label is 0.
-
toWire
Emit a Name in DNS wire format- Parameters:
out- The output stream containing the DNS message.c- The compression context, or null of no compression is desired.- Throws:
IllegalArgumentException- The name is not absolute.
-
toWire
public byte[] toWire()Emit a Name in DNS wire format- Throws:
IllegalArgumentException- The name is not absolute.
-
toWireCanonical
Emit a Name in canonical DNS wire format (all lowercase)- Parameters:
out- The output stream to which the message is written.
-
toWireCanonical
public byte[] toWireCanonical()Emit a Name in canonical DNS wire format (all lowercase)- Returns:
- The canonical form of the name.
-
toWire
Emit a Name in DNS wire format- Parameters:
out- The output stream containing the DNS message.c- The compression context, or null of no compression is desired.canonical- If true, emit the name in canonicalized form (all lowercase).- Throws:
IllegalArgumentException- The name is not absolute.
-
equals
Are these two Names equivalent? -
hashCode
public int hashCode()Computes a hashcode based on the value -
compareTo
Compares this Name to another Object.- Specified by:
compareToin interfaceComparable<Name>- Parameters:
arg- The name to be compared.- Returns:
- The value 0 if the argument is a name equivalent to this name; a value less than 0 if the argument is less than this name in the canonical ordering, and a value greater than 0 if the argument is greater than this name in the canonical ordering.
- Throws:
ClassCastException- if the argument is not a Name.
-