public ExecutionNode BuildNode() { if (!OptionSet) { throw new InvalidOperationException(); } ExecutionNode node; if (ActivityType != null) { throw new NotImplementedException("Projection in the graph of a reference type not supported"); } else if (ProxyActivity != null) { node = new ComponentNode(ProxyActivity); } else if (ActivityBranchBuilder != null) { node = ActivityBranchBuilder.BuildNode(); } else { node = new BuilderNode(Name, Decision != null, false, false, Metadata); } return(node); }