/// <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; } } }
/// <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); }
/// <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"); }
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)); } }
/// <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; } } }
/// <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); } }
/// <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); } }
/// <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); }
/// <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); }