public static TNode GetOrAddNode <TNodeType, TNode>(this IContainerNode <TNodeType> containerNode, TNodeType nodeType) where TNode : Node <TNodeType>, new() { Contract.Requires(containerNode != null); return(containerNode.GetOrAddNode <TNodeType, TNode>(nodeType, () => new TNode(), Node <TNodeType> .DefaultNodeTypeEqualityComarer)); }
public static TNode GetOrAddNode <TNodeType, TNode>(this IContainerNode <TNodeType> containerNode, TNodeType nodeType, Func <TNode> nodeFactoryMethod) where TNode : Node <TNodeType> { Contract.Requires(containerNode != null); Contract.Requires(nodeFactoryMethod != null); return(containerNode.GetOrAddNode <TNodeType, TNode>(nodeType, nodeFactoryMethod, Node <TNodeType> .DefaultNodeTypeEqualityComarer)); }
// PROTECTED CONSTRUCTORS /////////////////////////////////////////// #region Constructors protected LinksBuilder(TParentBuilder parentBuilder, IContainerNode <DomNodeType> domContainerNode) { Contract.Requires(parentBuilder != null); Contract.Requires(domContainerNode != null); this.ParentBuilder = parentBuilder; var domReadWriteLinks = domContainerNode.GetOrAddNode(DomNodeType.Links, () => DomReadWriteLinks.Create()); this.DomReadWriteLinks = domReadWriteLinks; }
// INTERNAL CONSTRUCTORS //////////////////////////////////////////// #region Constructors internal RelationshipsBuilder(TParentBuilder parentBuilder, IContainerNode <DomNodeType> domContainerNode, TResource clrResource) { Contract.Requires(parentBuilder != null); Contract.Requires(domContainerNode != null); Contract.Requires(clrResource != null); this.ParentBuilder = parentBuilder; var domReadWriteRelationships = domContainerNode.GetOrAddNode(DomNodeType.Relationships, () => DomReadWriteRelationships.Create()); this.DomReadWriteRelationships = domReadWriteRelationships; this.ClrResource = clrResource; }
// INTERNAL CONSTRUCTORS //////////////////////////////////////////// #region Constructors internal AttributesBuilder(TParentBuilder parentBuilder, IResourceType resourceType, IContainerNode <DomNodeType> domContainerNode) { Contract.Requires(parentBuilder != null); Contract.Requires(resourceType != null); Contract.Requires(domContainerNode != null); this.ParentBuilder = parentBuilder; this.ResourceType = resourceType; var domAttributes = domContainerNode.GetOrAddNode(DomNodeType.Attributes, () => DomAttributes.Create()); this.DomAttributes = domAttributes; this.BuildClrAttributeNames(); }
// INTERNAL CONSTRUCTORS //////////////////////////////////////////// #region Constructors internal RelationshipsBuilder(TParentBuilder parentBuilder, IServiceModel serviceModel, IContainerNode <DomNodeType> domContainerNode) { Contract.Requires(parentBuilder != null); Contract.Requires(serviceModel != null); Contract.Requires(domContainerNode != null); this.ParentBuilder = parentBuilder; this.ServiceModel = serviceModel; var resourceType = serviceModel.GetResourceType <TResource>(); this.ResourceType = resourceType; var domReadWriteRelationships = domContainerNode.GetOrAddNode(DomNodeType.Relationships, () => DomReadWriteRelationships.Create()); this.DomReadWriteRelationships = domReadWriteRelationships; }