1 // 2 // Field.cs 3 // 4 // Authors: 5 // Alexander Chebaturkin (chebaturkin@gmail.com) 6 // 7 // Copyright (C) 2011 Alexander Chebaturkin 8 // 9 // Permission is hereby granted, free of charge, to any person obtaining 10 // a copy of this software and associated documentation files (the 11 // "Software"), to deal in the Software without restriction, including 12 // without limitation the rights to use, copy, modify, merge, publish, 13 // distribute, sublicense, and/or sell copies of the Software, and to 14 // permit persons to whom the Software is furnished to do so, subject to 15 // the following conditions: 16 // 17 // The above copyright notice and this permission notice shall be 18 // included in all copies or substantial portions of the Software. 19 // 20 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 21 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 22 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 23 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 24 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 25 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 26 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 27 // 28 29 using Mono.Cecil; 30 31 namespace Mono.CodeContracts.Static.AST { 32 class Field : Member { 33 private readonly FieldDefinition definition; 34 Field(FieldDefinition definition)35 public Field (FieldDefinition definition) : base (NodeType.Field) 36 { 37 this.definition = definition; 38 } 39 40 #region Overrides of Member 41 public override bool IsStatic 42 { 43 get { return this.definition.IsStatic; } 44 } 45 46 public TypeNode FieldType 47 { 48 get { return TypeNode.Create (this.definition.FieldType); } 49 } 50 51 public string Name 52 { 53 get { return this.definition.Name; } 54 } 55 56 public override TypeNode DeclaringType 57 { 58 get { return TypeNode.Create (this.definition.DeclaringType); } 59 } 60 61 public override Module Module 62 { 63 get { return new Module (this.definition.Module); } 64 } 65 66 public override bool IsPublic 67 { 68 get { return this.definition.IsPublic; } 69 } 70 71 public override bool IsPrivate 72 { 73 get { return this.definition.IsPrivate; } 74 } 75 76 public override bool IsAssembly 77 { 78 get { return this.definition.IsAssembly; } 79 } 80 81 public override bool IsFamily 82 { 83 get { return this.definition.IsFamily; } 84 } 85 86 public override bool IsFamilyOrAssembly 87 { 88 get { return this.definition.IsFamilyOrAssembly; } 89 } 90 91 public override bool IsFamilyAndAssembly 92 { 93 get { return this.definition.IsFamilyAndAssembly; } 94 } 95 96 public bool IsReadonly 97 { 98 get { return this.definition.IsInitOnly; } 99 } 100 101 public bool IsCompilerGenerated 102 { 103 get { return this.definition.IsCompilerControlled; } 104 } 105 #endregion 106 } 107 } 108