public override DecodedObject <object> decode(IASN1TypesDecoder decoder, DecodedObject <object> decodedTag, Type objectClass, ElementInfo elementInfo, Stream stream) { IASN1PreparedElementData saveInfo = elementInfo.PreparedInfo; IASN1PreparedElement instance = (IASN1PreparedElement)elementInfo.PreparedInstance; ASN1ElementMetadata saveElemInfo = elementInfo.PreparedASN1ElementInfo; elementInfo.PreparedInfo = (valueFieldMeta); if (saveElemInfo != null) { if (!saveElemInfo.HasTag && elementInfo.hasPreparedASN1ElementInfo() && elementInfo.PreparedASN1ElementInfo.HasTag) { ASN1ElementMetadata elData = new ASN1ElementMetadata( saveElemInfo.Name, saveElemInfo.IsOptional, elementInfo.PreparedASN1ElementInfo.HasTag, elementInfo.PreparedASN1ElementInfo.IsImplicitTag, elementInfo.PreparedASN1ElementInfo.TagClass, elementInfo.PreparedASN1ElementInfo.Tag, saveElemInfo.HasDefaultValue ); elementInfo.PreparedASN1ElementInfo = elData; } else { elementInfo.PreparedASN1ElementInfo = (saveElemInfo); } } DecodedObject <object> decodedResult = valueFieldMeta.TypeMetadata.decode(decoder, decodedTag, valueField.PropertyType, elementInfo, stream); if (decodedResult != null) { if (!CoderUtils.isNullField(valueField, elementInfo)) { decoder.invokeSetterMethodForField(valueField, instance, decodedResult.Value, elementInfo); } } elementInfo.PreparedInfo = (saveInfo); elementInfo.PreparedInstance = (instance); elementInfo.PreparedASN1ElementInfo = (saveElemInfo); if (decodedResult != null) { return(new DecodedObject <object>(instance, decodedResult.Size)); } else { return(decodedResult); } }
public override DecodedObject<object> decode(IASN1TypesDecoder decoder, DecodedObject<object> decodedTag, Type objectClass, ElementInfo elementInfo, Stream stream) { return decoder.decodeSequence(decodedTag,objectClass,elementInfo,stream); }
public abstract DecodedObject <object> decode(IASN1TypesDecoder decoder, DecodedObject <object> decodedTag, Type objectClass, ElementInfo elementInfo, Stream stream);
public override DecodedObject <object> decode(IASN1TypesDecoder decoder, DecodedObject <object> decodedTag, Type objectClass, ElementInfo elementInfo, Stream stream) { return(decoder.decodeAny(decodedTag, objectClass, elementInfo, stream)); }
public override DecodedObject<object> decode(IASN1TypesDecoder decoder, DecodedObject<object> decodedTag, Type objectClass, ElementInfo elementInfo, Stream stream) { IASN1PreparedElementData saveInfo = elementInfo.PreparedInfo; IASN1PreparedElement instance = (IASN1PreparedElement)elementInfo.PreparedInstance; ASN1ElementMetadata saveElemInfo = elementInfo.PreparedASN1ElementInfo; elementInfo.PreparedInfo = (valueFieldMeta); if (saveElemInfo != null) { if (!saveElemInfo.HasTag && elementInfo.hasPreparedASN1ElementInfo() && elementInfo.PreparedASN1ElementInfo.HasTag) { ASN1ElementMetadata elData = new ASN1ElementMetadata( saveElemInfo.Name, saveElemInfo.IsOptional, elementInfo.PreparedASN1ElementInfo.HasTag, elementInfo.PreparedASN1ElementInfo.IsImplicitTag, elementInfo.PreparedASN1ElementInfo.TagClass, elementInfo.PreparedASN1ElementInfo.Tag, saveElemInfo.HasDefaultValue ); elementInfo.PreparedASN1ElementInfo = elData; } else elementInfo.PreparedASN1ElementInfo = (saveElemInfo); } DecodedObject<object> decodedResult = valueFieldMeta.TypeMetadata.decode(decoder, decodedTag, valueField.PropertyType, elementInfo, stream); if (decodedResult != null) { if (!CoderUtils.isNullField(valueField, elementInfo)) { decoder.invokeSetterMethodForField(valueField, instance, decodedResult.Value, elementInfo); } } elementInfo.PreparedInfo = (saveInfo); elementInfo.PreparedInstance = (instance); elementInfo.PreparedASN1ElementInfo = (saveElemInfo); if (decodedResult != null) return new DecodedObject<object>(instance, decodedResult.Size); else return decodedResult; }
public override DecodedObject <object> decode(IASN1TypesDecoder decoder, DecodedObject <object> decodedTag, Type objectClass, ElementInfo elementInfo, Stream stream) { elementInfo.PreparedInstance = null; return(decoder.decodeElement(decodedTag, objectClass, elementInfo, stream)); }
public override DecodedObject<object> decode(IASN1TypesDecoder decoder, DecodedObject<object> decodedTag, Type objectClass, ElementInfo elementInfo, Stream stream) { elementInfo.PreparedInstance = null; return decoder.decodeElement(decodedTag, objectClass, elementInfo, stream); }
public abstract DecodedObject<object> decode(IASN1TypesDecoder decoder, DecodedObject<object> decodedTag, Type objectClass, ElementInfo elementInfo, Stream stream);