JmDNS 3.4.1

javax.jmdns.impl
Class DNSCache

java.lang.Object
  extended by java.util.AbstractMap<String,List<? extends DNSEntry>>
      extended by javax.jmdns.impl.DNSCache
All Implemented Interfaces:
Map<String,List<? extends DNSEntry>>

public class DNSCache
extends AbstractMap<String,List<? extends DNSEntry>>

A table of DNS entries. This is a map table which can handle multiple entries with the same name.

Storing multiple entries with the same name is implemented using a linked list. This is hidden from the user and can change in later implementation.

Here's how to iterate over all entries:

       for (Iterator i=dnscache.allValues().iterator(); i.hasNext(); ) {
             DNSEntry entry = i.next();
             ...do something with entry...
       }
 

And here's how to iterate over all entries having a given name:

       for (Iterator i=dnscache.getDNSEntryList(name).iterator(); i.hasNext(); ) {
             DNSEntry entry = i.next();
           ...do something with entry...
       }
 

Author:
Arthur van Hoff, Werner Randelshofer, Rick Blair, Pierre Frisch

Nested Class Summary
protected static class DNSCache._CacheEntry
           
 
Nested classes/interfaces inherited from class java.util.AbstractMap
AbstractMap.SimpleEntry<K,V>, AbstractMap.SimpleImmutableEntry<K,V>
 
Nested classes/interfaces inherited from interface java.util.Map
Map.Entry<K,V>
 
Field Summary
static DNSCache EmptyCache
           
 
Constructor Summary
DNSCache()
           
DNSCache(DNSCache map)
           
DNSCache(int initialCapacity)
          Create a table with a given initial size.
 
Method Summary
 boolean addDNSEntry(DNSEntry dnsEntry)
          Adds an entry to the table.
 Collection<DNSEntry> allValues()
          Returns all entries in the cache
protected  Object clone()
          
 Set<Map.Entry<String,List<? extends DNSEntry>>> entrySet()
           
 DNSEntry getDNSEntry(DNSEntry dnsEntry)
          Get a matching DNS entry from the table (using isSameEntry).
 DNSEntry getDNSEntry(String name, DNSRecordType type, DNSRecordClass recordClass)
          Get a matching DNS entry from the table.
 Collection<? extends DNSEntry> getDNSEntryList(String name)
          Iterate only over items with matching name.
 Collection<? extends DNSEntry> getDNSEntryList(String name, DNSRecordType type, DNSRecordClass recordClass)
          Get all matching DNS entries from the table.
protected  Map.Entry<String,List<? extends DNSEntry>> getEntry(String key)
           
 List<? extends DNSEntry> put(String key, List<? extends DNSEntry> value)
          
 boolean removeDNSEntry(DNSEntry dnsEntry)
          Removes a specific entry from the table.
 boolean replaceDNSEntry(DNSEntry newDNSEntry, DNSEntry existingDNSEntry)
          Replace an existing entry by a new one.
Note: the 2 entries must have the same key.
 String toString()
          
 
Methods inherited from class java.util.AbstractMap
clear, containsKey, containsValue, equals, get, hashCode, isEmpty, keySet, putAll, remove, size, values
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

EmptyCache

public static final DNSCache EmptyCache
Constructor Detail

DNSCache

public DNSCache()

DNSCache

public DNSCache(DNSCache map)
Parameters:
map -

DNSCache

public DNSCache(int initialCapacity)
Create a table with a given initial size.

Parameters:
initialCapacity -
Method Detail

entrySet

public Set<Map.Entry<String,List<? extends DNSEntry>>> entrySet()
Specified by:
entrySet in interface Map<String,List<? extends DNSEntry>>
Specified by:
entrySet in class AbstractMap<String,List<? extends DNSEntry>>

getEntry

protected Map.Entry<String,List<? extends DNSEntry>> getEntry(String key)
Parameters:
key -
Returns:
map entry for the key

put

public List<? extends DNSEntry> put(String key,
                                    List<? extends DNSEntry> value)

Specified by:
put in interface Map<String,List<? extends DNSEntry>>
Overrides:
put in class AbstractMap<String,List<? extends DNSEntry>>

clone

protected Object clone()
                throws CloneNotSupportedException

Overrides:
clone in class AbstractMap<String,List<? extends DNSEntry>>
Throws:
CloneNotSupportedException

allValues

public Collection<DNSEntry> allValues()
Returns all entries in the cache

Returns:
all entries in the cache

getDNSEntryList

public Collection<? extends DNSEntry> getDNSEntryList(String name)
Iterate only over items with matching name. Returns an list of DNSEntry or null. To retrieve all entries, one must iterate over this linked list.

Parameters:
name -
Returns:
list of DNSEntries

getDNSEntry

public DNSEntry getDNSEntry(DNSEntry dnsEntry)
Get a matching DNS entry from the table (using isSameEntry). Returns the entry that was found.

Parameters:
dnsEntry -
Returns:
DNSEntry

getDNSEntry

public DNSEntry getDNSEntry(String name,
                            DNSRecordType type,
                            DNSRecordClass recordClass)
Get a matching DNS entry from the table.

Parameters:
name -
type -
recordClass -
Returns:
DNSEntry

getDNSEntryList

public Collection<? extends DNSEntry> getDNSEntryList(String name,
                                                      DNSRecordType type,
                                                      DNSRecordClass recordClass)
Get all matching DNS entries from the table.

Parameters:
name -
type -
recordClass -
Returns:
list of entries

addDNSEntry

public boolean addDNSEntry(DNSEntry dnsEntry)
Adds an entry to the table.

Parameters:
dnsEntry -
Returns:
true if the entry was added

removeDNSEntry

public boolean removeDNSEntry(DNSEntry dnsEntry)
Removes a specific entry from the table. Returns true if the entry was found.

Parameters:
dnsEntry -
Returns:
true if the entry was removed

replaceDNSEntry

public boolean replaceDNSEntry(DNSEntry newDNSEntry,
                               DNSEntry existingDNSEntry)
Replace an existing entry by a new one.
Note: the 2 entries must have the same key.

Parameters:
newDNSEntry -
existingDNSEntry -
Returns:
true if the entry has been replace, false otherwise.

toString

public String toString()

Overrides:
toString in class AbstractMap<String,List<? extends DNSEntry>>

Last updated 2011-08-25 12:40

Copyright © 2002-2011 JmDNS. All Rights Reserved.