// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) using System; namespace ICSharpCode.SharpDevelop.Dom { public class DefaultField : AbstractMember, IField { public override string DocumentationTag { get { return "F:" + this.DotNetName; } } public DefaultField(IClass declaringType, string name) : base(declaringType, name) { } public DefaultField(IReturnType type, string name, ModifierEnum m, DomRegion region, IClass declaringType) : base(declaringType, name) { this.ReturnType = type; this.Region = region; this.Modifiers = m; } public override IMember Clone() { DefaultField field = new DefaultField(ReturnType, Name, Modifiers, Region, DeclaringType); field.CopyDocumentationFrom(this); return field; } public virtual int CompareTo(IField field) { int cmp; cmp = base.CompareTo((IEntity)field); if (cmp != 0) { return cmp; } if (FullyQualifiedName != null) { return FullyQualifiedName.CompareTo(field.FullyQualifiedName); } return 0; } int IComparable.CompareTo(object value) { return CompareTo((IField)value); } /// Gets if this field is a local variable that has been converted into a field. public virtual bool IsLocalVariable { get { return false; } } /// Gets if this field is a parameter that has been converted into a field. public virtual bool IsParameter { get { return false; } } public override EntityType EntityType { get { return EntityType.Field; } } public class LocalVariableField : DefaultField { public override bool IsLocalVariable { get { return true; } } public LocalVariableField(IReturnType type, string name, DomRegion region, IClass callingClass) : base(type, name, ModifierEnum.None, region, callingClass) { } } public class ParameterField : DefaultField { public override bool IsParameter { get { return true; } } public ParameterField(IReturnType type, string name, DomRegion region, IClass callingClass) : base(type, name, ModifierEnum.None, region, callingClass) { } } } }