/// <summary>
 /// Adds a relation with a single link to the embedded resource.
 /// </summary>
 /// <param name="relation">How the link is related to the resource.</param>
 /// <param name="link">A hypermedia link.</param>
 /// <returns>This <see cref="IHalEmbeddedResourceBuilder"/> instance.</returns>
 public IHalEmbeddedResourceBuilder IncludeRelationWithSingleLink ( HalRelation relation, HalLink link ) {
     if (relation == null) {
         throw new ArgumentNullException("relation");
     }
     if (link == null) {
         throw new ArgumentNullException("link");
     }
     _linkCollection.Add(relation, link);
     return this;
 }
 /// <summary>
 /// Adds a relation with multiple hypermedia links to the embedded resource.
 /// </summary>
 /// <param name="relation">How the link is related to the resource.</param>
 /// <param name="links">Hypermedia links.</param>
 /// <returns>This <see cref="IHalEmbeddedResourceBuilder"/> instance.</returns>
 public IHalEmbeddedResourceBuilder IncludeRelationWithMultipleLinks ( HalRelation relation,
                                                                     IEnumerable<HalLink> links) {
     if (relation == null) {
         throw new ArgumentNullException("relation");
     }
     if (links == null) {
         throw new ArgumentNullException("links");
     }
     _linkCollection.Add(relation, links);
     return this;
 }
 /// <summary>
 /// Adds an embedded relation with multiple resources.
 /// </summary>
 /// <example>
 /// Sample JSON output:
 /// {
 ///    "_links": { "self": { "href": "http://mysite.com/" } },
 ///    _embedded: {
 ///               "orders": [ 
 ///                           {
 ///                             "_links": { "self": { "href": "http://mysite.com/511/" },
 ///                             "orderDate": "2013-01-05T13:43:22.33400000Z",
 ///                             "items": [ ... ]                        
 ///                           },
 ///                           {
 ///                             "_links": { "self": { "href": "http://mysite.com/512/" },
 ///                             "orderDate": "2013-01-05T13:45:22.55200000Z",
 ///                             "items": [ ... ]                        
 ///                           }
 ///                         ]
 ///               } 
 /// }
 /// </example>
 /// <param name="relation">How the embedded resource is related to the root resource.</param>
 /// <param name="embeddedResourcesresources">The embedded resources.</param>
 /// <returns>This <see cref="IHalDocumentBuilder"/> instance.</returns>
 public IHalDocumentBuilder IncludeEmbeddedWithMultipleResources ( HalRelation relation, IEnumerable<HalEmbeddedResource> embeddedResourcesresources )
 {
     if (relation == null)
     {
         throw new ArgumentNullException("relation");
     }
     if (embeddedResourcesresources == null)
     {
         throw new ArgumentNullException("embeddedResourcesresources");
     }
     _embeddedResourceCollection.Add(relation, embeddedResourcesresources);
     return this;
 }
 /// <summary>
 /// Adds a single embedded relation with a single resource to this document.
 /// </summary>
 /// <example>
 /// Sample JSON output:
 /// {
 ///    "_links": { "self": { "href": "http://mysite.com/" } },
 ///    _embedded: {
 ///               "order": {
 ///                           "_links": { "self": { "href": "http://mysite.com/{id}/", "templated": true },
 ///                           "orderDate": "2013-01-05T13:43:22.800000Z",
 ///                           "items": [ ... ]                        
 ///                       }
 ///               } 
 /// }
 /// </example>
 /// <param name="relation">How the embedded resource is related to the root resource.</param>
 /// <param name="embeddedResource">The embedded resource.</param>
 /// <returns>This <see cref="IHalDocumentBuilder"/> instance.</returns>
 public IHalDocumentBuilder IncludeEmbeddedWithSingleResource ( HalRelation relation, HalEmbeddedResource embeddedResource )
 {
     if (relation == null)
     {
         throw new ArgumentNullException("relation");
     }
     if (embeddedResource == null)
     {
         throw new ArgumentNullException("embeddedResource");
     }
     _embeddedResourceCollection.Add(relation, embeddedResource);
     return this;
 }