Esempio n. 1
0
            /// <summary>
            ///     Ensures that all elements have a Guid
            /// </summary>
            /// <param name="obj"></param>
            /// <param name="visitSubNodes"></param>
            public override void visit(BaseModelElement obj, bool visitSubNodes)
            {
                ModelElement element = (ModelElement)obj;

                if (UpdateGuid)
                {
                    // Side effect : creates a new Guid if it is empty
                    // ReSharper disable once UnusedVariable
                    string guid = element.Guid;
                }

                // Make sure that the update information is consistent
                if (!String.IsNullOrEmpty(element.Guid))
                {
                    if (element.Updates != null)
                    {
                        element.SetUpdateInformation(element.Updates);
                    }
                }

                IExpressionable expressionable = obj as IExpressionable;

                if (expressionable != null && ConvertObsoleteFile)
                {
                    UpdateExpressionable(expressionable);
                }

                base.visit(obj, visitSubNodes);
            }
Esempio n. 2
0
            public override void visit(BaseModelElement obj, bool visitSubNodes)
            {
                RefactorIExpressionable(NameSpace, obj as IExpressionable);
                RefactorTypedElement(NameSpace, obj as ITypedElement);

                base.visit(obj, visitSubNodes);
            }
Esempio n. 3
0
            /// <summary>
            ///     Ensures that all elements have a new Guid
            /// </summary>
            /// <param name="obj"></param>
            /// <param name="visitSubNodes"></param>
            public override void visit(BaseModelElement obj, bool visitSubNodes)
            {
                ModelElement element = (ModelElement)obj;

                // Side effect : creates a new Guid if it is empty
                element.setGuid(null);
                // ReSharper disable once UnusedVariable
                string guid = element.Guid;

                base.visit(obj, visitSubNodes);
            }
            public override void visit(BaseModelElement obj, bool visitSubNodes)
            {
                IFinder finder = obj as IFinder;

                if (finder != null)
                {
                    FinderRepository.INSTANCE.UnRegister(finder);
                }

                base.visit(obj, visitSubNodes);
            }
Esempio n. 5
0
            /// <summary>
            ///     Override for visiting a model element. If the model element is not a namespace,
            ///     but its direct enclosing is a namespace, the element is imported and the visitor does
            ///     not go further down the subnodes.
            /// </summary>
            /// <param name="obj"></param>
            /// <param name="visitSubNodes"></param>
            public override void visit(BaseModelElement obj, bool visitSubNodes)
            {
                ModelElement element = obj as ModelElement;

                if (element != null && !(element is NameSpace))
                {
                    element.Merge();
                }

                base.visit(obj, visitSubNodes);
            }
Esempio n. 6
0
            /// <summary>
            ///     Refactors all IExpressionables
            /// </summary>
            /// <param name="obj"></param>
            /// <param name="visitSubNodes"></param>
            public override void visit(BaseModelElement obj, bool visitSubNodes)
            {
                IExpressionable expressionable = obj as IExpressionable;

                if (expressionable != null)
                {
                    RefactorIExpressionable(null, expressionable);
                }

                base.visit(obj, visitSubNodes);
            }
Esempio n. 7
0
        protected void CheckNaming(object sender, EventArgs e)
        {
            BaseModelElement modelElement = Model as BaseModelElement;

            if (modelElement != null)
            {
                ApplyNamingConventionsOperation naming = new ApplyNamingConventionsOperation(modelElement);
                naming.ExecuteUsingProgressDialog(GuiUtils.MdiWindow, "Refactoring model according to naming conventions", true);
                BuildOrRefreshSubNodes(modelElement);
            }
        }
Esempio n. 8
0
            public override void visit(BaseModelElement obj, bool visitSubNodes)
            {
                foreach (ElementLog log in obj.Messages)
                {
                    if (log.Level == ElementLog.LevelEnum.Error)
                    {
                        ErrorsFound.Add(log);
                    }
                }

                base.visit(obj, visitSubNodes);
            }
Esempio n. 9
0
            protected override void OnClick(EventArgs e)
            {
                BaseModelElement model = null;

                if (Selected != null)
                {
                    model = Selected.Instance as ModelElement;
                }
                EfsSystem.Instance.Context.HandleChangeEvent(model, Context.ChangeKind.ModelChange);

                base.OnClick(e);
            }
Esempio n. 10
0
        public override void visit(BaseModelElement obj, bool visitSubNodes)
        {
            ModelElement element = (ModelElement)obj;

            if (AutomaticallyGenerateGuid)
            {
                // Side effect : creates the guid of the element
                // ReSharper disable once UnusedVariable
                string guid = element.Guid;
            }

            base.visit(obj, visitSubNodes);
        }
            /// <summary>
            ///     Constructor
            /// </summary>
            /// <param name="model"></param>
            public CheckNamingVisitor(BaseModelElement model)
            {
                DataDictionary.Generated.Namable namable = model as DataDictionary.Generated.Namable;

                if (namable != null)
                {
                    visit(namable);
                }
                else
                {
                    visit(model);
                }
            }
Esempio n. 12
0
            public override void visit(BaseModelElement obj, bool visitSubNodes)
            {
                ModelElement element = (ModelElement)obj;

                if (element.Messages.Count > 0)
                {
                    List <ElementLog> messages = new List <ElementLog>();
                    messages.AddRange(element.Messages);
                    Markings[element] = messages;
                }

                base.visit(obj, visitSubNodes);
            }
Esempio n. 13
0
            /// <summary>
            ///     Ensure that empty comments are not stored in the XML file
            /// </summary>
            /// <param name="obj"></param>
            /// <param name="visitSubNodes"></param>
            public override void visit(BaseModelElement obj, bool visitSubNodes)
            {
                ICommentable commentable = obj as ICommentable;

                if (commentable != null)
                {
                    if (commentable.Comment == "")
                    {
                        commentable.Comment = null;
                    }
                }

                base.visit(obj, visitSubNodes);
            }
Esempio n. 14
0
        public override void visit(BaseModelElement obj, bool visitSubNodes)
        {
            IExpressionable expressionable = obj as IExpressionable;

            if (expressionable != null)
            {
                // In case of rebuild, cleans the previously constructed tree
                if (Options.Rebuild)
                {
                    expressionable.CleanCompilation();
                }
                // Ensures that the expressionable is compiled
                expressionable.Compile();

                Structure structure = expressionable as Structure;
                if (structure != null)
                {
                    if (structure != structure.UnifiedStructure)
                    {
                        visit(structure.UnifiedStructure, visitSubNodes);
                    }
                }

                StateMachine stateMachine = expressionable as StateMachine;
                if (stateMachine != null)
                {
                    if (stateMachine != stateMachine.UnifiedStateMachine)
                    {
                        visit(stateMachine.UnifiedStateMachine, visitSubNodes);
                    }
                }
            }

            ITypedElement typedElement = obj as ITypedElement;

            if (typedElement != null)
            {
                // Ensures that the type of the corresponding element is cached
                Type type = typedElement.Type;
            }

            Function function = obj as Function;

            if (function != null)
            {
                Type returnType = function.ReturnType;
            }

            base.visit(obj, visitSubNodes);
        }
Esempio n. 15
0
            public override void visit(BaseModelElement obj, bool visitSubNodes)
            {
                IExpressionable expressionable = obj as IExpressionable;

                if (expressionable != null)
                {
                    // Perform search and replace on ExpressionText
                    if (obj.ExpressionText.IndexOf(SearchString) >= 0)
                    {
                        obj.ExpressionText = obj.ExpressionText.Replace(SearchString, ReplaceString);
                    }
                }

                base.visit(obj, visitSubNodes);
            }
Esempio n. 16
0
            public override void visit(BaseModelElement obj, bool visitSubNodes)
            {
                foreach (ElementLog log in obj.Messages)
                {
                    if (log.Level == ElementLog.LevelEnum.Error)
                    {
                        ErrorMessageFound = log;
                        break;
                    }
                }

                if (ErrorMessageFound == null)
                {
                    base.visit(obj, visitSubNodes);
                }
            }
Esempio n. 17
0
            /// <summary>
            ///     Clears the cache dependancy when a full rebuilt is asked
            /// </summary>
            /// <param name="obj"></param>
            /// <param name="visitSubNodes"></param>
            public override void visit(BaseModelElement obj, bool visitSubNodes)
            {
                // Clear the update information, to be built later
                ModelElement modelElement = obj as ModelElement;

                if (modelElement != null)
                {
                    modelElement.UpdatedBy.Clear();
                }

                if (Options.Rebuild)
                {
                    obj.CacheDependancy = null;
                }

                base.visit(obj, visitSubNodes);
            }
Esempio n. 18
0
            public override void visit(BaseModelElement obj, bool visitSubNodes)
            {
                IExpressionable expressionnable = obj as IExpressionable;

                if (expressionnable != null)
                {
                    Function enclosingFunction = EnclosingFinder <Function> .find(obj, true);

                    if (enclosingFunction != null)
                    {
                        // The value of the function depends on this.
                        TheReferenceVisitor.UpdateReferences(enclosingFunction, expressionnable.Tree);
                    }
                }

                base.visit(obj, visitSubNodes);
            }
Esempio n. 19
0
            /// <summary>
            ///     Cleans up the declared elements dictionaries
            /// </summary>
            /// <param name="obj"></param>
            /// <param name="visitSubNodes"></param>
            public override void visit(BaseModelElement obj, bool visitSubNodes)
            {
                ModelElement modelElement = obj as ModelElement;

                if (modelElement != null)
                {
                    if (modelElement.getUpdates() != null)
                    {
                        // find the model element updated by obj and add to its list of updates
                        ModelElement baseElement = GuidCache.Instance.GetModel(modelElement.getUpdates());
                        if (baseElement != null)
                        {
                            baseElement.UpdatedBy.Add(modelElement);
                        }

                        base.visit(obj, visitSubNodes);
                    }
                }
            }
Esempio n. 20
0
            public override void visit(BaseModelElement obj, bool visitSubNodes)
            {
                IExpressionable expressionable = obj as IExpressionable;

                if (expressionable != null)
                {
                    try
                    {
                        RelocateTree refactorer = new RelocateTree(BaseLocation);
                        refactorer.PerformUpdate(expressionable);
                    }
                    catch (Exception e)
                    {
                        obj.AddWarning("Cannot refactor this element, reason = " + e.Message);
                    }
                }

                base.visit(obj, visitSubNodes);
            }
Esempio n. 21
0
        /// <summary>
        ///     Actually counts
        /// </summary>
        /// <param name="obj"></param>
        private void Count(BaseModelElement obj)
        {
            foreach (ElementLog log in obj.Messages)
            {
                switch (log.Level)
                {
                case ElementLog.LevelEnum.Error:
                    Error += 1;
                    break;

                case ElementLog.LevelEnum.Warning:
                    Warning += 1;
                    break;

                case ElementLog.LevelEnum.Info:
                    Info += 1;
                    break;
                }
            }
        }
Esempio n. 22
0
            public override void visit(BaseModelElement obj, bool visitSubNodes)
            {
                ModelElement element = (ModelElement)obj;

                string guid = element.Guid;

                if (guid != null)
                {
                    ModelElement cachedElement;
                    if (_dictionary.TryGetValue(guid, out cachedElement))
                    {
                        if (cachedElement != null && element != cachedElement)
                        {
                            throw new Exception("Model element collision found");
                        }
                    }
                    else
                    {
                        _dictionary[element.Guid] = element;
                    }
                }

                base.visit(obj, visitSubNodes);
            }
Esempio n. 23
0
            /// <summary>
            ///     PropagatesDependancy all elements
            /// </summary>
            /// <param name="obj"></param>
            /// <param name="visitSubNodes"></param>
            public override void visit(BaseModelElement obj, bool visitSubNodes)
            {
                if (obj.CacheDependancy != null)
                {
                    BrowsedElements = new HashSet <Utils.ModelElement> {
                        obj
                    };

                    HashSet <Utils.ModelElement> dependingElements = obj.CacheDependancy;
                    obj.CacheDependancy = null;
                    foreach (Utils.ModelElement depending in dependingElements)
                    {
                        object current = depending;
                        while (current != null)
                        {
                            Utils.ModelElement currentElement = current as Utils.ModelElement;
                            if (currentElement != null)
                            {
                                PropagatesDependancy(currentElement, obj);
                            }

                            IEnclosed enclosed = current as IEnclosed;
                            if (enclosed != null)
                            {
                                current = enclosed.Enclosing;
                            }
                            else
                            {
                                current = null;
                            }
                        }
                    }
                }

                base.visit(obj, visitSubNodes);
            }
Esempio n. 24
0
        public override void visit(BaseModelElement obj, bool visitSubNodes)
        {
            checkUsage(obj as ModelElement);

            base.visit(obj, visitSubNodes);
        }
Esempio n. 25
0
        /// <summary>
        ///     Actually counts the messages
        /// </summary>
        /// <param name="obj"></param>
        /// <param name="visitSubNodes"></param>
        public override void visit(BaseModelElement obj, bool visitSubNodes)
        {
            Count(obj);

            base.visit(obj, visitSubNodes);
        }
 public ApplyNamingConventionsOperation(BaseModelElement model)
 {
     _model = model;
 }