Module org.snmp4j
Package org.snmp4j

Class AbstractTarget<A extends Address>

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, Target<A>
    Direct Known Subclasses:
    CommunityTarget, SecureTarget

    public abstract class AbstractTarget<A extends Address>
    extends java.lang.Object
    implements Target<A>
    A AbstractTarget class is an abstract representation of a remote SNMP entity. It represents a target with an Address object, as well protocol parameters such as retransmission and timeout policy. Implementers of the Target interface can subclass AbstractTarget to take advantage of the implementation of common Target properties.
    Since:
    1.2
    Version:
    2.0
    Author:
    Frank Fock
    See Also:
    Serialized Form
    • Field Detail

      • securityLevel

        protected int securityLevel
      • securityModel

        protected int securityModel
    • Constructor Detail

      • AbstractTarget

        protected AbstractTarget()
        Default constructor
      • AbstractTarget

        protected AbstractTarget​(A address)
        Creates a SNMPv3 target with no retries and a timeout of one second.
        Parameters:
        address - an Address instance.
      • AbstractTarget

        protected AbstractTarget​(A address,
                                 OctetString securityName)
    • Method Detail

      • getAddress

        public A getAddress()
        Gets the address of this target.
        Specified by:
        getAddress in interface Target<A extends Address>
        Returns:
        an Address instance.
      • setAddress

        public void setAddress​(A address)
        Sets the address of the target.
        Specified by:
        setAddress in interface Target<A extends Address>
        Parameters:
        address - an Address instance.
      • setRetries

        public void setRetries​(int retries)
        Sets the number of retries to be performed before a request is timed out.
        Specified by:
        setRetries in interface Target<A extends Address>
        Parameters:
        retries - the number of retries. Note: If the number of retries is set to 0, then the request will be sent out exactly once.
      • getRetries

        public int getRetries()
        Gets the number of retries.
        Specified by:
        getRetries in interface Target<A extends Address>
        Returns:
        an integer >= 0.
      • setTimeout

        public void setTimeout​(long timeout)
        Sets the timeout for a target.
        Specified by:
        setTimeout in interface Target<A extends Address>
        Parameters:
        timeout - timeout in milliseconds before a confirmed request is resent or timed out.
      • getTimeout

        public long getTimeout()
        Gets the timeout for a target.
        Specified by:
        getTimeout in interface Target<A extends Address>
        Returns:
        the timeout in milliseconds.
      • getMaxSizeRequestPDU

        public int getMaxSizeRequestPDU()
        Gets the maximum size of request PDUs that this target is able to respond to. The default is 65535.
        Specified by:
        getMaxSizeRequestPDU in interface Target<A extends Address>
        Returns:
        the maximum PDU size of request PDUs for this target. Which is always greater than 484.
      • setMaxSizeRequestPDU

        public void setMaxSizeRequestPDU​(int maxSizeRequestPDU)
        Sets the maximum size of request PDUs that this target is able to receive.
        Specified by:
        setMaxSizeRequestPDU in interface Target<A extends Address>
        Parameters:
        maxSizeRequestPDU - the maximum PDU (SNMP message) size this session will be able to process.
      • getPreferredTransports

        public java.util.List<TransportMapping<? super A>> getPreferredTransports()
        Description copied from interface: Target
        Gets the prioritised list of transport mappings to be used for this target. The first mapping in the list that matches the target address is chosen for sending new requests.
        Specified by:
        getPreferredTransports in interface Target<A extends Address>
        Returns:
        an ordered list of TransportMapping instances.
      • setPreferredTransports

        public void setPreferredTransports​(java.util.List<TransportMapping<? super A>> preferredTransports)
        Sets the prioritised list of transport mappings to be used for this target. The first mapping in the list that matches the target address will be chosen for sending new requests. If the value is set to null (default), the appropriate TransportMapping will be chosen by the supplied address of the target. If an entity supports more than one TransportMapping for an Address class, the the results are not defined. This situation can be controlled by setting this preferredTransports list.
        Parameters:
        preferredTransports - a list of transport mappings that are preferred for this target class.
        Since:
        2.0
      • toStringAbstractTarget

        protected java.lang.String toStringAbstractTarget()
      • toString

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

        public java.lang.Object clone()
        Specified by:
        clone in interface Target<A extends Address>
        Overrides:
        clone in class java.lang.Object
      • getSecurityModel

        public int getSecurityModel()
        Description copied from interface: Target
        Gets the security model associated with this target.
        Specified by:
        getSecurityModel in interface Target<A extends Address>
        Returns:
        an int value as defined in the SecurityModel interface or any third party subclass thereof.
      • getSecurityName

        public final OctetString getSecurityName()
        Description copied from interface: Target
        Gets the security name associated with this target. The security name is used by the security model to lookup further parameters like authentication and privacy protocol settings from the security model dependent internal storage.
        Specified by:
        getSecurityName in interface Target<A extends Address>
        Returns:
        an OctetString instance (never null).
      • setSecurityModel

        public void setSecurityModel​(int securityModel)
        Sets the security model for this target.
        Specified by:
        setSecurityModel in interface Target<A extends Address>
        Parameters:
        securityModel - an int value as defined in the SecurityModel interface or any third party subclass thereof.
      • setSecurityName

        public final void setSecurityName​(OctetString securityName)
        Sets the security name to be used with this target.
        Specified by:
        setSecurityName in interface Target<A extends Address>
        Parameters:
        securityName - an OctetString instance (must not be null).
        See Also:
        getSecurityName()
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object