Re[29]: Языки общего назначения не имеют смысла!
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 16.04.12 11:38
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Тебя просят рассказать о модели, на которой основаны все эти сущности.


Без проблем.
/// <summary>
/// Интерфейс метаэлемента.
/// </summary>
public interface IMetaElement
{
    /// <summary>
    /// Имя.
    /// </summary>
    string Name {get; set;}

    /// <summary>
    /// Описание.
    /// </summary>
    string Description {get; set;}

    /// <summary>
    /// Идентификатор.
    /// </summary>
    Guid Id {get;}

    /// <summary>
    /// Элемент хранения, в котором находится указанный элемент.
    /// </summary>
    IStorageElement StorageElement {get;}
}

/// <summary>
/// Элемент хранения.
/// </summary>
public interface IStorageElement : IMetaElement
{
    /// <summary>
    /// Версия.
    /// </summary>
    Version Version {get; set;}

    /// <summary>
    /// Ресольвер внешних ссылок.
    /// </summary>
    IMetaResolver Resolver {get;}
}

/// <summary>
/// Домены
/// </summary>
public interface IDomain : IStorageElement
{    
    /// <summary>
    /// Тип данных
    /// </summary>
    DataType DataType {get; set;}
    
    /// <summary>
    /// Формат данных
    /// </summary>
    string Format {get; set;}
    
    /// <summary>
    /// Значение по умолчанию
    /// </summary>
    string DefaultValue {get; set;}
    
    /// <summary>
    /// Значения перечисления
    /// </summary>
    IDomainEnumValueCollection DomainEnumValues {get;}
}

/// <summary>
/// Классы
/// </summary>
public interface IClass : IStorageElement
{
    /// <summary>
    /// Базовый класс
    /// </summary>
    IClass BaseClass {get; set;}

    /// <summary>
    /// Свойство IsAbstract. (!A)
    /// </summary>
    bool IsAbstract {get; set;}

    /// <summary>
    /// Свойство IsPersistent. (!A)
    /// </summary>
    bool IsPersistent {get; set;}

    /// <summary>
    /// Время жизни серверного объекта
    /// </summary>
    LifeTimeType LifeTime {get; set;}

    /// <summary>
    /// Ссылка на каталог
    /// </summary>
    IClassRefAttribute CatalogLink {get; set;}

    /// <summary>
    /// Связь иерархии
    /// </summary>
    IClassRefAttribute HierarchyLink {get; set;}

    /// <summary>
    /// Спецификация класса
    /// </summary>
    IDetailCollection Details {get;}
    
    /// <summary>
    /// Методы
    /// </summary>
    IClassMethodCollection ClassMethods {get;}
    
    /// <summary>
    /// Атрибуты
    /// </summary>
    IClassPhysicalAttributeCollection ClassPhysicalAttributes {get;}
    
    /// <summary>
    /// Атрибуты
    /// </summary>
    IClassRefAttributeCollection ClassRefAttributes {get;}
    
    /// <summary>
    /// Вычисляемые атрибуты
    /// </summary>
    IClassCalcAttributeCollection ClassCalcAttributes {get;}
    
    /// <summary>
    /// Ограничения класса
    /// </summary>
    IClassConstraintCollection ClassConstraints {get;}
    
    /// <summary>
    /// Индекс класса
    /// </summary>
    IClassIndexCollection ClassIndexes {get;}
}


Вложенные типы и коллекции нужны?

WH>Но рассказывать о нем не хочешь.


Тебе показалось.
... << RSDN@Home 1.2.0 alpha 5 rev. 31 on Windows 7 6.1.7601.65536>>
AVK Blog
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.