Esempio n. 1
0
            /// <summary>
            /// Adds the given element to the collection
            /// </summary>
            /// <param name="item">The item to add</param>
            public override void Add(IModelElement item)
            {
                if ((this._parent.EFactoryInstance == null))
                {
                    IEFactory eFactoryInstanceCasted = item.As <IEFactory>();
                    if ((eFactoryInstanceCasted != null))
                    {
                        this._parent.EFactoryInstance = eFactoryInstanceCasted;
                        return;
                    }
                }
                IEClassifier eClassifiersCasted = item.As <IEClassifier>();

                if ((eClassifiersCasted != null))
                {
                    this._parent.EClassifiers.Add(eClassifiersCasted);
                }
                IEPackage eSubpackagesCasted = item.As <IEPackage>();

                if ((eSubpackagesCasted != null))
                {
                    this._parent.ESubpackages.Add(eSubpackagesCasted);
                }
                if ((this._parent.ESuperPackage == null))
                {
                    IEPackage eSuperPackageCasted = item.As <IEPackage>();
                    if ((eSuperPackageCasted != null))
                    {
                        this._parent.ESuperPackage = eSuperPackageCasted;
                        return;
                    }
                }
            }
Esempio n. 2
0
            /// <summary>
            /// Removes the given item from the collection
            /// </summary>
            /// <returns>True, if the item was removed, otherwise False</returns>
            /// <param name="item">The item that should be removed</param>
            public override bool Remove(IModelElement item)
            {
                if ((this._parent.EFactoryInstance == item))
                {
                    this._parent.EFactoryInstance = null;
                    return(true);
                }
                IEClassifier eClassifierItem = item.As <IEClassifier>();

                if (((eClassifierItem != null) &&
                     this._parent.EClassifiers.Remove(eClassifierItem)))
                {
                    return(true);
                }
                IEPackage ePackageItem = item.As <IEPackage>();

                if (((ePackageItem != null) &&
                     this._parent.ESubpackages.Remove(ePackageItem)))
                {
                    return(true);
                }
                if ((this._parent.ESuperPackage == item))
                {
                    this._parent.ESuperPackage = null;
                    return(true);
                }
                return(false);
            }
        private static void GenericTest(string inputFile, IDictionary <string, string> dependencies, string outputPackageId)
        {
            string projectFolder = VariousUtil.GetProjectFolder();
            string ecorePath     = Path.Combine(projectFolder, inputFile);

            if (dependencies != null)
            {
                foreach (KeyValuePair <string, string> dependency in dependencies)
                {
                    // Load dependency using NMF, with a specific URI
                    string          dependencyPath = Path.Combine(projectFolder, dependency.Value);
                    ModelRepository repository     = (ModelRepository)EcoreInterop.Repository;
                    FileStream      depFileStream  = new FileInfo(dependencyPath).Open(FileMode.Open);
                    repository.Serializer.Deserialize(depFileStream,
                                                      new Uri(dependency.Key, UriKind.Absolute), repository, true);
                    depFileStream.Close();
                }
            }

            // Load ecore using NMF
            IEPackage        package   = EcoreInterop.LoadPackageFromFile(ecorePath);
            ISet <IEPackage> epackages = new HashSet <IEPackage>()
            {
                package
            };

            // Load output EnAr project
            Package outputContainerPackage = Ecore2EnArTestSetUp.Loader.GetEnAarPackage(outputPackageId);

            // Prepare transformation and start
            XsdImport.Ecore2EnAr.Ecore2EnAr importer = new XsdImport.Ecore2EnAr.Ecore2EnAr(outputContainerPackage, Ecore2EnArTestSetUp.Loader.Explorer);
            importer.ConstructMetamodel(epackages);
        }
Esempio n. 4
0
        /// <summary>
        /// Gets called when the parent model element of the current model element is about to change
        /// </summary>
        /// <param name="oldParent">The old parent model element</param>
        /// <param name="newParent">The new parent model element</param>
        protected override void OnParentChanging(IModelElement newParent, IModelElement oldParent)
        {
            IEPackage             oldEPackage = ModelHelper.CastAs <IEPackage>(oldParent);
            IEPackage             newEPackage = ModelHelper.CastAs <IEPackage>(newParent);
            ValueChangedEventArgs e           = new ValueChangedEventArgs(oldEPackage, newEPackage);

            this.OnEPackageChanging(e);
            this.OnPropertyChanging("EPackage");
        }
Esempio n. 5
0
 private void AddMissingPackage(IEPackage package, INamespace metaNamespace)
 {
     if (options.NMeta != null && package.Model != null && package.Model.ModelUri != null && package.Model.ModelUri.IsAbsoluteUri && package.Model.ModelUri.IsFile)
     {
         var path      = package.Model.ModelUri.LocalPath;
         var dir       = Path.GetDirectoryName(options.NMeta);
         var extension = Path.GetExtension(options.NMeta);
         var file      = Path.GetFileNameWithoutExtension(path);
         repository.Save(metaNamespace, Path.Combine(dir, file + extension));
     }
 }
Esempio n. 6
0
 /// <summary>
 /// Adds the given element to the collection
 /// </summary>
 /// <param name="item">The item to add</param>
 public override void Add(IModelElement item)
 {
     if ((this._parent.EPackage == null))
     {
         IEPackage ePackageCasted = item.As <IEPackage>();
         if ((ePackageCasted != null))
         {
             this._parent.EPackage = ePackageCasted;
             return;
         }
     }
 }
Esempio n. 7
0
            /// <summary>
            /// Adds the given element to the collection
            /// </summary>
            /// <param name="item">The item to add</param>
            public override void Add(IModelElement item)
            {
                IEClassifier eClassifiersCasted = item.As <IEClassifier>();

                if ((eClassifiersCasted != null))
                {
                    this._parent.EClassifiers.Add(eClassifiersCasted);
                }
                IEPackage eSubpackagesCasted = item.As <IEPackage>();

                if ((eSubpackagesCasted != null))
                {
                    this._parent.ESubpackages.Add(eSubpackagesCasted);
                }
            }
Esempio n. 8
0
            /// <summary>
            /// Adds the given element to the collection
            /// </summary>
            /// <param name="item">The item to add</param>
            public override void Add(IModelElement item)
            {
                if ((this._parent.EPackage == null))
                {
                    IEPackage ePackageCasted = item.As <IEPackage>();
                    if ((ePackageCasted != null))
                    {
                        this._parent.EPackage = ePackageCasted;
                        return;
                    }
                }
                IETypeParameter eTypeParametersCasted = item.As <IETypeParameter>();

                if ((eTypeParametersCasted != null))
                {
                    this._parent.ETypeParameters.Add(eTypeParametersCasted);
                }
            }
Esempio n. 9
0
        /// <summary>
        /// Gets called when the parent model element of the current model element changes
        /// </summary>
        /// <param name="oldParent">The old parent model element</param>
        /// <param name="newParent">The new parent model element</param>
        protected override void OnParentChanged(IModelElement newParent, IModelElement oldParent)
        {
            IEPackage oldESuperPackage = ModelHelper.CastAs <IEPackage>(oldParent);
            IEPackage newESuperPackage = ModelHelper.CastAs <IEPackage>(newParent);

            if ((oldESuperPackage != null))
            {
                oldESuperPackage.ESubpackages.Remove(this);
            }
            if ((newESuperPackage != null))
            {
                newESuperPackage.ESubpackages.Add(this);
            }
            ValueChangedEventArgs e = new ValueChangedEventArgs(oldESuperPackage, newESuperPackage);

            this.OnESuperPackageChanged(e);
            this.OnPropertyChanged("ESuperPackage", e);
        }
Esempio n. 10
0
        /// <summary>
        /// Gets called when the parent model element of the current model element changes
        /// </summary>
        /// <param name="oldParent">The old parent model element</param>
        /// <param name="newParent">The new parent model element</param>
        protected override void OnParentChanged(IModelElement newParent, IModelElement oldParent)
        {
            IEPackage oldEPackage = ModelHelper.CastAs <IEPackage>(oldParent);
            IEPackage newEPackage = ModelHelper.CastAs <IEPackage>(newParent);

            if ((oldEPackage != null))
            {
                oldEPackage.EClassifiers.Remove(this);
            }
            if ((newEPackage != null))
            {
                newEPackage.EClassifiers.Add(this);
            }
            ValueChangedEventArgs e = new ValueChangedEventArgs(oldEPackage, newEPackage);

            this.OnEPackageChanged(e);
            this.OnPropertyChanged("EPackage", e, _ePackageReference);
            base.OnParentChanged(newParent, oldParent);
        }