public final class PublicSuffixDatabase
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
private static java.lang.String[] |
EMPTY_RULE |
private static byte |
EXCEPTION_MARKER |
private static PublicSuffixDatabase |
instance |
private java.util.concurrent.atomic.AtomicBoolean |
listRead
True after we've attempted to read the list for the first time.
|
private static java.lang.String[] |
PREVAILING_RULE |
static java.lang.String |
PUBLIC_SUFFIX_RESOURCE |
private byte[] |
publicSuffixExceptionListBytes |
private byte[] |
publicSuffixListBytes |
private java.util.concurrent.CountDownLatch |
readCompleteLatch
Used for concurrent threads reading the list for the first time.
|
private static byte[] |
WILDCARD_LABEL |
Constructor and Description |
---|
PublicSuffixDatabase() |
Modifier and Type | Method and Description |
---|---|
private static java.lang.String |
binarySearchBytes(byte[] bytesToSearch,
byte[][] labels,
int labelIndex) |
private java.lang.String[] |
findMatchingRule(java.lang.String[] domainLabels) |
static PublicSuffixDatabase |
get() |
java.lang.String |
getEffectiveTldPlusOne(java.lang.String domain)
Returns the effective top-level domain plus one (eTLD+1) by referencing the public suffix list.
|
private void |
readTheList() |
private void |
readTheListUninterruptibly()
Reads the public suffix list treating the operation as uninterruptible.
|
(package private) void |
setListBytes(byte[] publicSuffixListBytes,
byte[] publicSuffixExceptionListBytes)
Visible for testing.
|
public static final java.lang.String PUBLIC_SUFFIX_RESOURCE
private static final byte[] WILDCARD_LABEL
private static final java.lang.String[] EMPTY_RULE
private static final java.lang.String[] PREVAILING_RULE
private static final byte EXCEPTION_MARKER
private static final PublicSuffixDatabase instance
private final java.util.concurrent.atomic.AtomicBoolean listRead
private final java.util.concurrent.CountDownLatch readCompleteLatch
private byte[] publicSuffixListBytes
private byte[] publicSuffixExceptionListBytes
public static PublicSuffixDatabase get()
public java.lang.String getEffectiveTldPlusOne(java.lang.String domain)
Here are some examples:
assertEquals("google.com", getEffectiveTldPlusOne("google.com"));
assertEquals("google.com", getEffectiveTldPlusOne("www.google.com"));
assertNull(getEffectiveTldPlusOne("com"));
domain
- A canonicalized domain. An International Domain Name (IDN) should be punycode
encoded.private java.lang.String[] findMatchingRule(java.lang.String[] domainLabels)
private static java.lang.String binarySearchBytes(byte[] bytesToSearch, byte[][] labels, int labelIndex)
private void readTheListUninterruptibly()
private void readTheList() throws java.io.IOException
java.io.IOException
void setListBytes(byte[] publicSuffixListBytes, byte[] publicSuffixExceptionListBytes)