//------------------------------------------------------------------------------
// <auto-generated>
//     Dieser Code wurde von einem Tool generiert.
//     Laufzeitversion:4.0.30319.42000
//
//     Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
//     der Code erneut generiert wird.
// </auto-generated>
//------------------------------------------------------------------------------

using NMF.Collections.Generic;
using NMF.Collections.ObjectModel;
using NMF.Expressions;
using NMF.Expressions.Linq;
using NMF.Models;
using NMF.Models.Collections;
using NMF.Models.Expressions;
using NMF.Models.Meta;
using NMF.Models.Repository;
using NMF.Serialization;
using NMF.Utilities;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Diagnostics;
using System.Linq;

namespace NMF.Interop.Ecore
{
    
    
    /// <summary>
    /// The public interface for EAnnotation
    /// </summary>
    [DefaultImplementationTypeAttribute(typeof(EAnnotation))]
    [XmlDefaultImplementationTypeAttribute(typeof(EAnnotation))]
    public interface IEAnnotation : IModelElement, IEModelElement
    {
        
        /// <summary>
        /// The source property
        /// </summary>
        string Source
        {
            get;
            set;
        }
        
        /// <summary>
        /// The details property
        /// </summary>
        IListExpression<IEStringToStringMapEntry> Details
        {
            get;
        }
        
        /// <summary>
        /// The eModelElement property
        /// </summary>
        IEModelElement EModelElement
        {
            get;
            set;
        }
        
        /// <summary>
        /// The contents property
        /// </summary>
        IListExpression<IEObject> Contents
        {
            get;
        }
        
        /// <summary>
        /// The references property
        /// </summary>
        IListExpression<IEObject> References
        {
            get;
        }
        
        /// <summary>
        /// Gets fired before the Source property changes its value
        /// </summary>
        event EventHandler SourceChanging;
        
        /// <summary>
        /// Gets fired when the Source property changed its value
        /// </summary>
        event EventHandler<ValueChangedEventArgs> SourceChanged;
        
        /// <summary>
        /// Gets fired when the EModelElement property changed its value
        /// </summary>
        event EventHandler<ValueChangedEventArgs> EModelElementChanged;
    }
}

