Class TlvInfo<I extends TlvInfo<I,?,H>,V,H extends TlvHeader>
java.lang.Object
ru.bitel.bgbilling.kernel.network.tlv.TlvInfo<I,V,H>
- All Implemented Interfaces:
- java.lang.Iterable<I>
- Direct Known Subclasses:
- RadiusAttributeInfo
public abstract class TlvInfo<I extends TlvInfo<I,?,H>,V,H extends TlvHeader>
extends java.lang.Object
implements java.lang.Iterable<I>
- 
Field SummaryFields Modifier and Type Field Description protected I[]childrenprotected java.util.List<I>childrenListprotected java.util.Map<java.lang.Integer,I>childrenMapjava.lang.Stringnameprotected java.util.Map<java.lang.String,I>nameChildrenMapprotected intparamLengthLengthprotected intparamTypeLengthprotected Iparentinttypestatic intTYPE_ABINARYstatic intTYPE_BYTEstatic intTYPE_DOUBLEstatic intTYPE_FLOATstatic intTYPE_INTEGERstatic intTYPE_IPADDRstatic intTYPE_IPV6ADDRstatic intTYPE_IPV6PREFIXstatic intTYPE_LONGstatic intTYPE_OCTETSstatic intTYPE_SHORTstatic intTYPE_STRINGstatic intTYPE_TLVintvalueType
- 
Constructor Summary
- 
Method SummaryModifier and Type Method Description IgetChild(int type)IgetChild(java.lang.String name)java.util.Iterator<I>iterator()abstract Tlv<?,?>read(java.nio.ByteBuffer bb, H header)voidreadTypeLength(java.nio.ByteBuffer bb, H header, int parentLength, boolean headerInLength)Считывание типа и длины.voidsetParent(I parent)protected java.nio.ByteBuffersliceData(java.nio.ByteBuffer bb, int length)Получения ByteBuffer содержащего dataabstract VunwrapValue(java.nio.ByteBuffer data)java.lang.StringvalueToString(Tlv<?,V> attribute)abstract java.nio.ByteBufferwrapValue(V value)Methods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface java.lang.IterableforEach, spliterator
- 
Field Details- 
TYPE_OCTETSpublic static final int TYPE_OCTETS- See Also:
- Constant Field Values
 
- 
TYPE_STRINGpublic static final int TYPE_STRING- See Also:
- Constant Field Values
 
- 
TYPE_LONGpublic static final int TYPE_LONG- See Also:
- Constant Field Values
 
- 
TYPE_INTEGERpublic static final int TYPE_INTEGER- See Also:
- Constant Field Values
 
- 
TYPE_SHORTpublic static final int TYPE_SHORT- See Also:
- Constant Field Values
 
- 
TYPE_BYTEpublic static final int TYPE_BYTE- See Also:
- Constant Field Values
 
- 
TYPE_DOUBLEpublic static final int TYPE_DOUBLE- See Also:
- Constant Field Values
 
- 
TYPE_FLOATpublic static final int TYPE_FLOAT- See Also:
- Constant Field Values
 
- 
TYPE_TLVpublic static final int TYPE_TLV- See Also:
- Constant Field Values
 
- 
TYPE_IPADDRpublic static final int TYPE_IPADDR- See Also:
- Constant Field Values
 
- 
TYPE_ABINARYpublic static final int TYPE_ABINARY- See Also:
- Constant Field Values
 
- 
TYPE_IPV6ADDRpublic static final int TYPE_IPV6ADDR- See Also:
- Constant Field Values
 
- 
TYPE_IPV6PREFIXpublic static final int TYPE_IPV6PREFIX- See Also:
- Constant Field Values
 
- 
paramTypeLengthprotected final int paramTypeLength
- 
paramLengthLengthprotected final int paramLengthLength
- 
typepublic final int type
- 
namepublic final java.lang.String name
- 
valueTypepublic final int valueType
- 
parent
- 
childrenList
- 
children
- 
childrenMap
- 
nameChildrenMap
 
- 
- 
Constructor Details- 
TlvInfopublic TlvInfo(java.lang.Class<?> clazz, int type, java.lang.String name, int valueType, int paramTypeSize, int paramLengthSize, java.util.List<I> children)
 
- 
- 
Method Details- 
setParent
- 
getChild
- 
getChild
- 
iterator
- 
read
- 
unwrapValue
- 
wrapValue
- 
valueToString
- 
sliceDataprotected final java.nio.ByteBuffer sliceData(java.nio.ByteBuffer bb, int length)Получения ByteBuffer содержащего data- Parameters:
- bb-
- length-
- Returns:
 
- 
readTypeLengthpublic void readTypeLength(java.nio.ByteBuffer bb, H header, int parentLength, boolean headerInLength)Считывание типа и длины. Обычно это производится родительской веткой, т.к. она знает какой размер у полей типа и длина. Частный случай родительской ветки - vendor- Parameters:
- bb-
- header-
- parentLength-
- headerInLength-
 
 
-