| File: System\Formats\Tar\PaxGlobalExtendedAttributesTarEntry.cs | Web Access |
| Project: src\runtime\src\libraries\System.Formats.Tar\src\System.Formats.Tar.csproj (System.Formats.Tar) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Collections.Generic; using System.Collections.ObjectModel; namespace System.Formats.Tar { /// <summary> /// Represents a Global Extended Attributes TAR entry from an archive of the PAX format. /// </summary> public sealed class PaxGlobalExtendedAttributesTarEntry : PosixTarEntry { // Constructor used when reading an existing archive. internal PaxGlobalExtendedAttributesTarEntry(TarHeader header, TarReader readerOfOrigin) : base(header, readerOfOrigin, TarEntryFormat.Pax) { } /// <summary> /// Initializes a new <see cref="PaxGlobalExtendedAttributesTarEntry"/> instance with the specified Global Extended Attributes enumeration. /// </summary> /// <param name="globalExtendedAttributes">An enumeration of string key-value pairs that represents the metadata to include as Global Extended Attributes.</param> /// <exception cref="ArgumentNullException"><paramref name="globalExtendedAttributes"/> is <see langword="null"/>.</exception> public PaxGlobalExtendedAttributesTarEntry(IEnumerable<KeyValuePair<string, string>> globalExtendedAttributes) : base(TarEntryType.GlobalExtendedAttributes, nameof(PaxGlobalExtendedAttributesTarEntry), TarEntryFormat.Pax, isGea: true) // Name == name of type for lack of a better temporary name until the entry is written { ArgumentNullException.ThrowIfNull(globalExtendedAttributes); _header.AddExtendedAttributes(globalExtendedAttributes); } /// <summary> /// Returns the global extended attributes stored in this entry. /// </summary> public IReadOnlyDictionary<string, string> GlobalExtendedAttributes => field ??= _header.ExtendedAttributes.AsReadOnly(); // Determines if the current instance's entry type supports setting a data stream. internal override bool IsDataStreamSetterSupported() => false; } }