public override int DeserializeDataElementDataFromByteArray(byte[] byteArray, int startIndex)
{
int index = startIndex;
this.RevisionManifest = StreamObject.GetCurrent<RevisionManifest>(byteArray, ref index);
this.RevisionManifestRootDeclareList = new List<RevisionManifestRootDeclare>();
this.RevisionManifestObjectGroupReferencesList = new List<RevisionManifestObjectGroupReferences>();
StreamObjectHeaderStart header;
int headerLength = 0;
while ((headerLength = StreamObjectHeaderStart.TryParse(byteArray, index, out header)) != 0)
{
if (header.Type == StreamObjectTypeHeaderStart.RevisionManifestRootDeclare)
{
index += headerLength;
this.RevisionManifestRootDeclareList.Add(StreamObject.ParseStreamObject(header, byteArray, ref index) as RevisionManifestRootDeclare);
}
else if (header.Type == StreamObjectTypeHeaderStart.RevisionManifestObjectGroupReferences)
{
index += headerLength;
this.RevisionManifestObjectGroupReferencesList.Add(StreamObject.ParseStreamObject(header, byteArray, ref index) as RevisionManifestObjectGroupReferences);
}
else
{
throw new DataElementParseErrorException(index, "Failed to parse RevisionManifestDataElement, expect the inner object type RevisionManifestRootDeclare or RevisionManifestObjectGroupReferences, but actual type value is " + header.Type, null);
}
}
return index - startIndex;
}