private void LoadProject(Suite suite, Project project, YamlNode projectNode)
{
Contract.Requires(suite != null);
Contract.Requires(project != null);
Contract.Requires(projectNode != null);
var mapping = projectNode as YamlMappingNode;
if (mapping != null)
{
foreach (var pair in parser.EnumerateNodesOf(mapping))
{
if (new YamlScalarNode("type").Equals(pair.Key) &&
pair.Value is YamlScalarNode)
{
SetProjectType(project, ((YamlScalarNode)pair.Value).Value);
}
else if (new YamlScalarNode("version").Equals(pair.Key) &&
pair.Value is YamlScalarNode)
{
project.Version = ParseVersion(((YamlScalarNode)pair.Value).Value);
}
else if (new YamlScalarNode("copyright").Equals(pair.Key) && pair.Value is YamlScalarNode)
{
project.Copyright = ((YamlScalarNode)pair.Value).Value;
}
else if (new YamlScalarNode("references").Equals(pair.Key) &&
pair.Value is YamlSequenceNode)
{
SetProjectReferences(project, ((YamlSequenceNode)pair.Value).Children);
}
else if (new YamlScalarNode("postprocessors").Equals(pair.Key) &&
pair.Value is YamlMappingNode)
{
// skipping
}
else
{
TryAddParameters(suite, project, pair.Key, pair.Value);
}
}
}
// Adding post processors
SetProjectPostProcessors(suite, project, projectNode);
}