internal virtual PdfName AddResource <T>(PdfObjectWrapper <T> resource, PdfResources.ResourceNameGenerator nameGen
                                          )
     where T : PdfObject
 {
     return(AddResource(resource.GetPdfObject(), nameGen));
 }
 /// <summary>
 /// Gets the mapped resource name of the
 /// <see cref="PdfObject"/>
 /// under the given wrapper.
 /// </summary>
 /// <remarks>
 /// Gets the mapped resource name of the
 /// <see cref="PdfObject"/>
 /// under the given wrapper.
 /// <br />
 /// <br />
 /// Note: if the name for the object won't be found, then the name of object's Indirect Reference will be searched.
 /// </remarks>
 /// <param name="resource">
 /// the wrapper of the
 /// <see cref="PdfObject"/>
 /// , for which the name will be searched.
 /// </param>
 /// <typeparam name="T">
 /// the type of the underlined
 /// <see cref="PdfObject"/>
 /// in wrapper.
 /// </typeparam>
 /// <returns>
 /// the mapped resource name or
 /// <see langword="null"/>
 /// if object isn't added to resources.
 /// </returns>
 public virtual PdfName GetResourceName <T>(PdfObjectWrapper <T> resource)
     where T : PdfObject
 {
     return(GetResourceName(resource.GetPdfObject()));
 }