// 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; using System.ComponentModel; using ICSharpCode.NRefactory.TypeSystem; using ICSharpCode.SharpDevelop.Parser; using ICSharpCode.SharpDevelop.Project; namespace ICSharpCode.SharpDevelop.Dom { /// /// An NRefactory entity as a model. /// public interface IEntityModel : ISymbolModel { /// /// Gets/sets the accessibility of the entity. /// Accessibility Accessibility { get; } /// /// Gets whether this entity is static. /// Returns true if either the 'static' or the 'const' modifier is set. /// bool IsStatic { get; } /// /// Returns whether this entity is abstract. /// /// Static classes also count as abstract classes. bool IsAbstract { get; } /// /// Returns whether this entity is sealed. /// /// Static classes also count as sealed classes. bool IsSealed { get; } /// /// Gets whether this member is declared to be shadowing another member with the same name. /// (C# 'new' keyword) /// bool IsShadowing { get; } /// /// Resolves the entity in the current solution snapshot. /// Returns null if the entity could not be resolved. /// IEntity Resolve(); /// /// Resolves the entity in the specified solution snapshot. /// Returns null if the entity could not be resolved. /// IEntity Resolve(ISolutionSnapshotWithProjectMapping solutionSnapshot); } }