Inheritance: NMF.Serialization.Xmi.XmiSerializationContext
Exemplo n.º 1
0
        public Model Deserialize(Stream source, Uri modelUri, IModelRepository repository, bool addToRepository)
        {
            var reader = XmlReader.Create(source);
            var root   = CreateRoot(reader);

            var model = CreateModelForRoot(root);

            model.ModelUri = modelUri;
            if (addToRepository)
            {
                repository.Models.Add(modelUri, model);
            }
            var context = new ModelSerializationContext(repository, model);

            Initialize(reader, root, context);

            foreach (var pair in context.IDs)
            {
                var modelElement = pair.Value as ModelElement;
                if (modelElement != null)
                {
                    model.RegisterId(pair.Key, modelElement);
                }
            }

            context.Cleanup();

            return(model);
        }
Exemplo n.º 2
0
        public Model Deserialize(Stream source, Uri modelUri, IModelRepository repository, bool addToRepository)
        {
            var reader = XmlReader.Create(source);
            var root = CreateRoot(reader);

            var model = CreateModelForRoot(root);
            model.ModelUri = modelUri;
            if (addToRepository) repository.Models.Add(modelUri, model);
            var context = new ModelSerializationContext(repository, model);

            Initialize(reader, root, context);

            foreach (var pair in context.IDs)
            {
                var modelElement = pair.Value as ModelElement;
                if (modelElement != null)
                {
                    model.RegisterId(pair.Key, modelElement);
                }
            }

            context.Cleanup();

            return model;
        }
Exemplo n.º 3
0
        public Model Deserialize(Stream source, Uri modelUri, IModelRepository repository, bool addToRepository)
        {
            var reader = XmlReader.Create(source);
            var root = CreateRoot(reader);

            var model = CreateModelForRoot(root);
            model.ModelUri = modelUri;
            if (addToRepository) repository.Models.Add(modelUri, model);
            var context = new ModelSerializationContext(repository, model);

            Initialize(reader, root, context);

            var idStore = new Dictionary<string, IModelElement>();
            foreach (var pair in context.IDs)
            {
                var modelElement = pair.Value as IModelElement;
                if (modelElement != null && !idStore.ContainsKey(pair.Key))
                {
                    idStore.Add(pair.Key, modelElement);
                }
            }
            if (idStore.Count > 0)
            {
                model.IdStore = idStore;
            }

            context.Cleanup();

            return model;
        }