- java.lang.Object
-
- org.snmp4j.smi.AbstractVariable
-
- org.snmp4j.smi.SMIAddress
-
- org.snmp4j.smi.GenericAddress
-
- All Implemented Interfaces:
java.io.Serializable,java.lang.Cloneable,java.lang.Comparable<Variable>,BERSerializable,Address,AssignableFromByteArray,AssignableFromString,Variable
public class GenericAddress extends SMIAddress
TheGenericAddressimplements the decorator and factory design pattern to provide a generic address type.To register address types other than the default, set the system property
ADDRESS_TYPES_PROPERTIESbefore calling theparse(java.lang.String)method for the first time.- Version:
- 3.0
- Author:
- Frank Fock
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringADDRESS_TYPES_PROPERTIESstatic java.lang.StringTYPE_DTLSDefault address type identifier for an DtlsAddress.static java.lang.StringTYPE_IPDefault address type identifier for an IpAddress.static java.lang.StringTYPE_TCPDefault address type identifier for a TcpAddress.static java.lang.StringTYPE_TLSDefault address type identifier for an TlsAddress.static java.lang.StringTYPE_UDPDefault address type identifier for an UpdAddress.-
Fields inherited from class org.snmp4j.smi.AbstractVariable
SMISYNTAXES_PROPERTIES
-
-
Constructor Summary
Constructors Constructor Description GenericAddress()GenericAddress(SMIAddress address)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Objectclone()Clones this variable.intcompareTo(Variable o)voiddecodeBER(BERInputStream inputStream)Decodes aVariablefrom anBERInputStream.voidencodeBER(java.io.OutputStream outputStream)Encodes aVariableto anOutputStream.booleanequals(java.lang.Object o)voidfromSubIndex(OID subIndex, boolean impliedLength)Sets the value of thisVariablefrom the supplied (sub-)index.AddressgetAddress()intgetBERLength()Returns the length of thisVariablein bytes when encoded according to the Basic Encoding Rules (BER).intgetSyntax()Gets the ASN.1 syntax identifier value of this SNMP variable.static java.lang.StringgetTDomainPrefix(java.lang.Class<? extends Address> addressClass)Gets the transport domain prefix string (lowercase) for a suppliedAddressclass.inthashCode()booleanisValid()Checks whether thisAddressis a valid transport address.static Addressparse(java.lang.String address)Parses a given transport protocol dependent address string into anAddressinstance that is subsumed by thisGenericAddressobject.booleanparseAddress(java.lang.String address)Parse an address form the supplied string.voidsetAddress(SMIAddress address)voidsetValue(byte[] rawAddress)Sets the value of this object from the supplied byte array.voidsetValue(java.lang.String value)Sets the address value from the supplied String.byte[]toByteArray()Returns the value of this object as a byte array.inttoInt()Returns an integer representation of this variable if such a representation exists.longtoLong()Returns a long representation of this variable if such a representation exists.java.lang.StringtoString()Gets a string representation of the variable.OIDtoSubIndex(boolean impliedLength)Converts the value of thisVariableto a (sub-)index value.-
Methods inherited from class org.snmp4j.smi.AbstractVariable
createFromBER, createFromSyntax, equal, getBERPayloadLength, getSyntaxFromString, getSyntaxString, getSyntaxString, isDynamic, isException
-
Methods inherited from interface org.snmp4j.smi.Address
isTransportCompatible
-
-
-
-
Field Detail
-
TYPE_UDP
public static final java.lang.String TYPE_UDP
Default address type identifier for an UpdAddress.- See Also:
- Constant Field Values
-
TYPE_TCP
public static final java.lang.String TYPE_TCP
Default address type identifier for a TcpAddress.- See Also:
- Constant Field Values
-
TYPE_IP
public static final java.lang.String TYPE_IP
Default address type identifier for an IpAddress.- See Also:
- Constant Field Values
-
TYPE_TLS
public static final java.lang.String TYPE_TLS
Default address type identifier for an TlsAddress.- See Also:
- Constant Field Values
-
TYPE_DTLS
public static final java.lang.String TYPE_DTLS
Default address type identifier for an DtlsAddress.- See Also:
- Constant Field Values
-
ADDRESS_TYPES_PROPERTIES
public static final java.lang.String ADDRESS_TYPES_PROPERTIES
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
GenericAddress
public GenericAddress()
-
GenericAddress
public GenericAddress(SMIAddress address)
-
-
Method Detail
-
getSyntax
public int getSyntax()
Description copied from class:AbstractVariableGets the ASN.1 syntax identifier value of this SNMP variable.- Specified by:
getSyntaxin interfaceVariable- Specified by:
getSyntaxin classAbstractVariable- Returns:
- an integer value less than 128 for regular SMI objects and a value greater or equal than 128 for exception values like noSuchObject, noSuchInstance, and endOfMibView.
-
isValid
public boolean isValid()
Description copied from interface:AddressChecks whether thisAddressis a valid transport address.- Returns:
trueif the address is valid,falseotherwise.
-
toString
public java.lang.String toString()
Description copied from class:AbstractVariableGets a string representation of the variable.- Specified by:
toStringin interfaceVariable- Specified by:
toStringin classAbstractVariable- Returns:
- a string representation of the variable's value.
-
hashCode
public int hashCode()
- Specified by:
hashCodein interfaceVariable- Specified by:
hashCodein classAbstractVariable
-
compareTo
public int compareTo(Variable o)
- Specified by:
compareToin interfacejava.lang.Comparable<Variable>- Specified by:
compareToin interfaceVariable- Specified by:
compareToin classAbstractVariable
-
equals
public boolean equals(java.lang.Object o)
- Specified by:
equalsin interfaceVariable- Specified by:
equalsin classAbstractVariable
-
decodeBER
public void decodeBER(BERInputStream inputStream) throws java.io.IOException
Description copied from class:AbstractVariableDecodes aVariablefrom anBERInputStream.- Specified by:
decodeBERin interfaceBERSerializable- Specified by:
decodeBERin classAbstractVariable- Parameters:
inputStream- anBERInputStreamcontaining a BER encoded byte stream.- Throws:
java.io.IOException- if the stream could not be decoded by using BER rules.
-
encodeBER
public void encodeBER(java.io.OutputStream outputStream) throws java.io.IOExceptionDescription copied from class:AbstractVariableEncodes aVariableto anOutputStream.- Specified by:
encodeBERin interfaceBERSerializable- Specified by:
encodeBERin classAbstractVariable- Parameters:
outputStream- anOutputStream.- Throws:
java.io.IOException- if an error occurs while writing to the stream.
-
getBERLength
public int getBERLength()
Description copied from class:AbstractVariableReturns the length of thisVariablein bytes when encoded according to the Basic Encoding Rules (BER).- Specified by:
getBERLengthin interfaceBERSerializable- Specified by:
getBERLengthin classAbstractVariable- Returns:
- the BER encoded length of this variable.
-
setAddress
public void setAddress(SMIAddress address)
-
getAddress
public Address getAddress()
-
parse
public static Address parse(java.lang.String address)
Parses a given transport protocol dependent address string into anAddressinstance that is subsumed by thisGenericAddressobject.- Parameters:
address- an address string with a leading type specifier as defined in the "address.properties". The format is"type:address"where the format ofaddressdepends ontype. Valid values fortypeare, for example, "udp" and "tcp".- Returns:
- a
Addressinstance of the address classes specified in "address.properties" whose type ID matched the specified ID inaddress. Ifaddresscannot be parsed,nullis returned. - Throws:
java.lang.IllegalArgumentException- if the address type indicator supplied is not know.
-
parseAddress
public boolean parseAddress(java.lang.String address)
Parse an address form the supplied string.- Parameters:
address- an address string known by the GenericAddress.- Returns:
- boolean
- See Also:
parse(String address)
-
setValue
public void setValue(byte[] rawAddress)
Description copied from interface:AssignableFromByteArraySets the value of this object from the supplied byte array.- Parameters:
rawAddress- a byte array.
-
clone
public java.lang.Object clone()
Description copied from interface:VariableClones this variable. Cloning can be used by the SNMP4J API to better support concurrency by creating a clone for internal processing. The content of this object is independent to the content of the clone. Thus, changes to the clone will have no effect to this object.- Specified by:
clonein interfaceVariable- Specified by:
clonein classAbstractVariable- Returns:
- a new instance of this
Variablewith the same value.
-
toInt
public int toInt()
Description copied from class:AbstractVariableReturns an integer representation of this variable if such a representation exists.- Specified by:
toIntin interfaceVariable- Specified by:
toIntin classAbstractVariable- Returns:
- an integer value (if the native representation of this variable would be a long, then the long value will be casted to int).
-
toLong
public long toLong()
Description copied from class:AbstractVariableReturns a long representation of this variable if such a representation exists.- Specified by:
toLongin interfaceVariable- Specified by:
toLongin classAbstractVariable- Returns:
- a long value.
-
toSubIndex
public OID toSubIndex(boolean impliedLength)
Description copied from class:AbstractVariableConverts the value of thisVariableto a (sub-)index value.- Specified by:
toSubIndexin interfaceVariable- Specified by:
toSubIndexin classAbstractVariable- Parameters:
impliedLength- specifies if the sub-index has an implied length. This parameter applies to variable length variables only (e.g.OctetStringandOID). For other variables it has no effect.- Returns:
- an OID that represents this value as an (sub-)index.
-
fromSubIndex
public void fromSubIndex(OID subIndex, boolean impliedLength)
Description copied from class:AbstractVariableSets the value of thisVariablefrom the supplied (sub-)index.- Specified by:
fromSubIndexin interfaceVariable- Specified by:
fromSubIndexin classAbstractVariable- Parameters:
subIndex- the sub-index OID.impliedLength- specifies if the sub-index has an implied length. This parameter applies to variable length variables only (e.g.OctetStringandOID). For other variables it has no effect.
-
toByteArray
public byte[] toByteArray()
Description copied from interface:AssignableFromByteArrayReturns the value of this object as a byte array.- Returns:
- a byte array.
-
setValue
public void setValue(java.lang.String value)
Description copied from interface:AddressSets the address value from the supplied String. The string must match the format required for the Address instance implementing this interface. Otherwise anIllegalArgumentExceptionruntime exception is thrown.- Parameters:
value- an address String.
-
getTDomainPrefix
public static java.lang.String getTDomainPrefix(java.lang.Class<? extends Address> addressClass)
Gets the transport domain prefix string (lowercase) for a suppliedAddressclass.- Parameters:
addressClass- an implementation class ofAddress.- Returns:
- the corresponding transport domain prefix as defined by the
IANA registry "SNMP Transport Domains" if the
addressClasshas been registered with a domain prefix,nullotherwise. - Since:
- 2.0
-
-