//add by hxzon
protected void readValue(BerInputStream stream) {
try {
int readTag;
ReadSequence seq = new ReadSequence(this.getName(), stream);
//add by hxzon:after read len
super.setOffsetAndLen(stream);
readTag = seq.readBerTag();
while (Tag.EOFTYPE != readTag) {
try {
BerNode cnode = create(readTag, stream);
logger.trace("create " + cnode.getName() + "," + cnode.getTagDisplay() + ",tag offset:" + cnode.getTagOffset() + ",len:" + cnode.getTotalLen());
/** always add choice?
//if child is a choice ,and no tag ,and global set don't add choice node
if (cnode instanceof BerChoice && !((BerChoice) cnode).hasTag() && Asn1Utils.isNotAddChoiceNode()) {
cnode.setParent(this);
cnode = ((BerChoice) cnode).getLastRealNode();
}
**/
cnode.setParent(this);
_fList.add(cnode);
} catch (Exception e) {
logger.error(this.getClass().getSimpleName() + "[" + this.getName() + "]", e);
}
readTag = seq.readBerTag();
}
// logger.trace("stream tag offset:"+stream.getTagOffset()+","+super.getDisplayString()+" tag offset:"+super.getTagOffset()
// +", stream total len:"+stream.getTotalLen());
super.setTotalLen(stream.getTagOffset() - super.getTagOffset() + stream.getTotalLen());
// logger.trace("construct:" + super.getDisplayString() + ",tag offset" + super.getTagOffset() + ",total len:" + super.getTotalLen());