// 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 ICSharpCode.Core; using ICSharpCode.NRefactory.TypeSystem; namespace ICSharpCode.SharpDevelop.Dom { /// /// Allows creating models using the default implementation in SharpDevelop.exe. /// [SDService] public interface IModelFactory { /// /// Creates an empty type definition collection that holds the top-level types for a project. /// ITypeDefinitionModelCollection CreateTopLevelTypeDefinitionCollection(IEntityModelContext context); ITypeDefinitionModel CreateTypeDefinitionModel(IEntityModelContext context, params IUnresolvedTypeDefinition[] parts); IMemberModel CreateMemberModel(IEntityModelContext context, IUnresolvedMember member); } }