// // Author: // Jb Evain (jbevain@gmail.com) // // Copyright (c) 2008 - 2015 Jb Evain // Copyright (c) 2008 - 2011 Novell, Inc. // // Licensed under the MIT/X11 license. // namespace MonoFN.Cecil { public enum ResourceType { Linked, Embedded, AssemblyLinked } public abstract class Resource { private uint attributes; public string Name { get; set; } public ManifestResourceAttributes Attributes { get { return (ManifestResourceAttributes)attributes; } set { attributes = (uint)value; } } public abstract ResourceType ResourceType { get; } #region ManifestResourceAttributes public bool IsPublic { get { return attributes.GetMaskedAttributes((uint)ManifestResourceAttributes.VisibilityMask, (uint)ManifestResourceAttributes.Public); } set { attributes = attributes.SetMaskedAttributes((uint)ManifestResourceAttributes.VisibilityMask, (uint)ManifestResourceAttributes.Public, value); } } public bool IsPrivate { get { return attributes.GetMaskedAttributes((uint)ManifestResourceAttributes.VisibilityMask, (uint)ManifestResourceAttributes.Private); } set { attributes = attributes.SetMaskedAttributes((uint)ManifestResourceAttributes.VisibilityMask, (uint)ManifestResourceAttributes.Private, value); } } #endregion internal Resource(string name, ManifestResourceAttributes attributes) { this.Name = name; this.attributes = (uint)attributes; } } }