OpenHome.Git.Commit.Resolve C# (CSharp) Method

Resolve() private method

private Resolve ( ) : void
return void
        internal void Resolve()
        {
            if (iTree == null)
            {
                iParents = new List<ICommit>();

                string commit = ASCIIEncoding.ASCII.GetString(iReference.Contents);

                string[] lines = commit.Split(new char[] { '\n' });

                int offset = 1;

                foreach (string line in lines)
                {
                    if (line.Length == 0)
                    {
                        break;
                    }

                    offset += line.Length + 1;

                    string[] parts = line.Split(new char[] { ' ' }, 2);

                    CorruptIf(parts.Length != 2);

                    string key = parts[0];
                    string value = parts[1];

                    switch (key)
                    {
                        case "tree":
                            CorruptIf(iTree != null);
                            iTree = new Tree(new TreeRef(iReference.Repository, value));
                            break;

                        case "parent":
                            iParents.Add(new Commit(new CommitRef(iReference.Repository, value)));
                            break;

                        case "author":
                            CorruptIf(iAuthor != null);
                            iAuthor = PersonTime.Create(value);
                            break;

                        case "committer":
                            CorruptIf(iCommitter != null);
                            iCommitter = PersonTime.Create(value);
                            break;

                        default:
                            CorruptIf(true);
                            break;
                    }
                }

                CorruptIf(iTree == null);
                CorruptIf(iAuthor == null);
                CorruptIf(iCommitter == null);

                iDescription = commit.Substring(offset);
            }
        }

Same methods

Commit::Resolve ( IObjectResolver aHandler ) : void