Class AbstractDNSResolver<T>

  • Type Parameters:
    T - Type of record to resolve.
    All Implemented Interfaces:
    DNSResolver<T>
    Direct Known Subclasses:
    SRVDNSResolver

    public abstract class AbstractDNSResolver<T>
    extends java.lang.Object
    implements DNSResolver<T>
    Base class for all DNS resolvers.
    Author:
    Middleware Services
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected org.slf4j.Logger logger
      Class logger.
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      protected abstract java.lang.String[] getAttributes()
      Get the types of records to query for, e.g.
      protected abstract java.util.Set<T> processRecords​(java.util.Set<java.lang.String> records)
      Process a set of DNS records.
      java.util.Set<T> resolve​(java.lang.String name)
      Resolve a set of DNS records of some type for the given name.
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • logger

        protected final org.slf4j.Logger logger
        Class logger.
    • Constructor Detail

      • AbstractDNSResolver

        public AbstractDNSResolver​(DNSContextFactory factory)
        Creates a new abstract DNS resolver.
        Parameters:
        factory - DNS context factory
    • Method Detail

      • resolve

        public java.util.Set<T> resolve​(java.lang.String name)
        Description copied from interface: DNSResolver
        Resolve a set of DNS records of some type for the given name.
        Specified by:
        resolve in interface DNSResolver<T>
        Parameters:
        name - Name for which to resolve DNS records.
        Returns:
        Set of records of type T bound to the given name.
      • getAttributes

        protected abstract java.lang.String[] getAttributes()
        Get the types of records to query for, e.g. {"A", "AAAA"}.
        Returns:
        Array of JNDI attribute names.
      • processRecords

        protected abstract java.util.Set<T> processRecords​(java.util.Set<java.lang.String> records)
        Process a set of DNS records.
        Parameters:
        records - Set of raw DNS records returned from a name query.
        Returns:
        Set of converted/processed records.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object