java.lang.Object
org.snmp4j.smi.AbstractVariable
org.snmp4j.smi.SMIAddress
org.snmp4j.smi.GenericAddress
- All Implemented Interfaces:
Serializable,Cloneable,Comparable<Variable>,BERSerializable,Address,AssignableFromByteArray,AssignableFromString,Variable
The
GenericAddress implements 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_PROPERTIES before calling the parse(java.lang.String) method
for the first time.
- Version:
- 3.0
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate SMIAddressstatic final Stringprivate static final Stringprivate static final LogAdapter(package private) static final longstatic final StringDefault address type identifier for an DtlsAddress.static final StringDefault address type identifier for an IpAddress.static final StringDefault address type identifier for a TcpAddress.static final StringDefault address type identifier for an TlsAddress.static final StringDefault address type identifier for an UpdAddress.Fields inherited from class org.snmp4j.smi.AbstractVariable
SMISYNTAXES_PROPERTIES -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionclone()Clones this variable.intvoiddecodeBER(BERInputStream inputStream) Decodes aVariablefrom anBERInputStream.voidencodeBER(OutputStream outputStream) Encodes aVariableto anOutputStream.booleanvoidfromSubIndex(OID subIndex, boolean impliedLength) Sets the value of thisVariablefrom the supplied (sub-)index.intReturns the length of thisVariablein bytes when encoded according to the Basic Encoding Rules (BER).intGets the ASN.1 syntax identifier value of this SNMP variable.static StringgetTDomainPrefix(Class<? extends Address> addressClass) Gets the transport domain prefix string (lowercase) for a suppliedAddressclass.inthashCode()booleanisValid()Checks whether thisAddressis a valid transport address.static AddressParses a given transport protocol dependent address string into anAddressinstance that is subsumed by thisGenericAddressobject.booleanparseAddress(String address) Parse an address form the supplied string.private static voidRegister Address classes from a properties file.voidsetAddress(SMIAddress address) voidsetValue(byte[] rawAddress) Sets the value of this object from the supplied byte array.voidSets the address value from the supplied String.byte[]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.toString()Gets a string representation of the variable.toSubIndex(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, isExceptionMethods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.snmp4j.smi.Address
isTransportCompatible
-
Field Details
-
serialVersionUID
static final long serialVersionUID- See Also:
-
TYPE_UDP
Default address type identifier for an UpdAddress.- See Also:
-
TYPE_TCP
Default address type identifier for a TcpAddress.- See Also:
-
TYPE_IP
Default address type identifier for an IpAddress.- See Also:
-
TYPE_TLS
Default address type identifier for an TlsAddress.- See Also:
-
TYPE_DTLS
Default address type identifier for an DtlsAddress.- See Also:
-
ADDRESS_TYPES_PROPERTIES
- See Also:
-
ADDRESS_TYPES_PROPERTIES_DEFAULT
- See Also:
-
logger
-
address
-
knownAddressTypes
-
-
Constructor Details
-
GenericAddress
public GenericAddress() -
GenericAddress
-
-
Method Details
-
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
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
- Specified by:
compareToin interfaceComparable<Variable>- Specified by:
compareToin interfaceVariable- Specified by:
compareToin classAbstractVariable
-
equals
- Specified by:
equalsin interfaceVariable- Specified by:
equalsin classAbstractVariable
-
decodeBER
Description copied from class:AbstractVariableDecodes aVariablefrom anBERInputStream.- Specified by:
decodeBERin interfaceBERSerializable- Specified by:
decodeBERin classAbstractVariable- Parameters:
inputStream- anBERInputStreamcontaining a BER encoded byte stream.- Throws:
IOException- if the stream could not be decoded by using BER rules.
-
encodeBER
Description copied from class:AbstractVariableEncodes aVariableto anOutputStream.- Specified by:
encodeBERin interfaceBERSerializable- Specified by:
encodeBERin classAbstractVariable- Parameters:
outputStream- anOutputStream.- Throws:
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
-
getAddress
-
registerAddressTypes
private static void registerAddressTypes()Register Address classes from a properties file. The registered address types are used by theparse(String)method to type-safe instantiate sub-classes fromAddressfrom aString. -
parse
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:
IllegalArgumentException- if the address type indicator supplied is not know.
-
parseAddress
Parse an address form the supplied string.- Parameters:
address- an address string known by the GenericAddress.- Returns:
- boolean
- See Also:
-
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
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
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
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
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
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
-