Beispiel #1
0
        /// <summary>
        /// Returns direct children by type.
        /// </summary>
        /// <param name="type"></param>
        /// <returns></returns>
        internal NodeList FilterByNameOrIndexOrType(Node.NodeTypes type)
        {
            var ret = new NodeList();

            ret.AddRange(this.Where(x => type == Node.NodeTypes.Any || x.NodeType == type));
            return(ret);
        }
Beispiel #2
0
        /// <summary>
        /// Returns all direct children with given name.
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        internal NodeList FilterByTypeAndNameOrIndex(Node.NodeTypes type, string name)
        {
            var type_filtered = this.FilterByNameOrIndexOrType(type);
            var ret           = new NodeList();

            ret.AddRange(type_filtered.Where(x => string.Compare(x.Name, name, true) == 0).ToArray());
            return(ret);
        }
Beispiel #3
0
        /// <summary>
        /// Returns direct child at given index.
        /// </summary>
        /// <param name="index"></param>
        /// <returns></returns>
        internal NodeList FilterByTypeAndNameOrIndex(Node.NodeTypes type, int index)
        {
            var type_filtered = this.FilterByNameOrIndexOrType(type);
            var ret           = new NodeList();

            if (type_filtered.Count > index)
            {
                ret.Add(type_filtered[index]);
            }
            return(ret);
        }
Beispiel #4
0
 public Node GetNodeByType(Node.NodeTypes type, int index)
 {
     if (type == Node.NodeTypes.Any)
     {
         return(this.Count > index ? this[index] : null);
     }
     else
     {
         var ret = (from n in this where n.NodeType == type select n).ToList();
         return(ret.Count > index ? ret[index] : null);
     }
 }
Beispiel #5
0
 /// <summary>
 /// Returns direct children by index. If no index is given, by name. If no name is given, by type.
 /// </summary>
 /// <param name="name"></param>
 /// <param name="index"></param>
 /// <param name="type"></param>
 /// <returns></returns>
 internal NodeList FilterByTypeAndNameOrIndex(int index, string name, Node.NodeTypes type)
 {
     if (index >= 0)
     {
         return(this.FilterByTypeAndNameOrIndex(type, index));
     }
     if (!(string.IsNullOrEmpty(name)))
     {
         return(this.FilterByTypeAndNameOrIndex(type, name));
     }
     else if (!(type == Node.NodeTypes.UnknownNode))
     {
         return(this.FilterByNameOrIndexOrType(type));
     }
     throw new Exception("Must provide name (!= \"\") or index (>= 0) or given node type.");
 }
Beispiel #6
0
        /// <summary>
        /// Recursive search for nodes of specific type, with custom predicate.
        /// </summary>
        /// <param name="type"></param>
        /// <param name="predicate"></param>
        /// <returns></returns>
        public NodeList GetNodesByType(Node.NodeTypes type, Func <Node, bool> predicate)
        {
            var ret = new NodeList();

            ret.AddRange(this.Where(x => (type == Node.NodeTypes.Any || x.NodeType == type) && predicate(x)));
            foreach (var n in this)
            {
                var list = n.Children.GetNodesByType(type, predicate);
                if (list.Count > 0)
                {
                    foreach (var child in list)
                    {
                        ret.Add(child);
                    }
                }
            }
            return(ret);
        }
    public void LoadDefaultNodeProperties()
    {
        int index = Node.FindValueInEnumNodeTypes(editNodeCaptionText.text);

        //int index = Node.FindValueInEnumNodeTypes(currentEntity.label);

        if (index == -1)
        {
            return;
        }

        Node.NodeTypes nodeType = (Node.NodeTypes)index;

        string defaultPros = DefaultProperties.ForNode(nodeType);

        //currentEntity.
        editNodeProperties.text = defaultPros;

        print("loading default properties for: " + nodeType.ToString());
    }
Beispiel #8
0
        /// <summary>
        /// Search for nodes of specific type.
        /// </summary>
        /// <param name="type"></param>
        /// <param name="recursive"></param>
        /// <returns></returns>
        public NodeList GetByNodesType(Node.NodeTypes type, bool recursive)
        {
            var ret = new NodeList();

            ret.AddRange(this.Where(x => type == Node.NodeTypes.Any || x.NodeType == type));
            if (recursive)
            {
                foreach (var n in this)
                {
                    var list = n.Children.GetByNodesType(type, true);
                    if (list.Count > 0)
                    {
                        foreach (var child in list)
                        {
                            ret.Add(child);
                        }
                    }
                }
            }
            return(ret);
        }
Beispiel #9
0
 public Node GetNodeByType(Node.NodeTypes type, string name) => (from n in this
                                                                     where (type == Node.NodeTypes.Any || n.NodeType == type) &&
                                                                 string.Compare(n.Name, name) == 0
                                                                 select n).FirstOrDefault();
Beispiel #10
0
 /// <summary>
 /// Recursive search for nodes of specific type.
 /// </summary>
 /// <param name="type"></param>
 /// <returns></returns>
 public NodeList GetByNodesType(Node.NodeTypes type) =>
 this.GetByNodesType(type, true);
Beispiel #11
0
    public static string ForNode(Node.NodeTypes nodeType)
    {
        string properties = "";

        switch (nodeType)
        {
        case Node.NodeTypes.Person:
        {
            properties =
                "knaUid: " + '\n' +
                "name: " + '\n' +
                "ssn: " + '\n' +
                "email: " + '\n' +
                "phone: " + '\n' +
                "street: " + '\n' +
                "postalTown: " + '\n' +
                "postalCode: ";
            break;
        }

        case Node.NodeTypes.Employee:
        {
            properties =
                "knaUid: " + '\n' +
                "name: " + '\n' +
                "phone: " + '\n' +
                "email: ";
            break;
        }

        case Node.NodeTypes.Company:
        {
            properties =
                "knaUid: " + '\n' +
                "name: " + '\n' +
                "orgNumber: " + '\n' +
                "kind: " + '\n' +
                "email: " + '\n' +
                "phone: " + '\n' +
                "street: " + '\n' +
                "postalTown: " + '\n' +
                "postalCode: ";
            break;
        }

        case Node.NodeTypes.Application:
        {
            properties =
                "knaUid: " + '\n' +
                "name: ";
            break;
        }

        case Node.NodeTypes.Case:
        {
            properties =
                "knaUid: " + '\n' +
                "name: ";
            break;
        }

        case Node.NodeTypes.RealEstate:
        {
            properties =
                "knaUid: " + '\n' +
                "name: " + '\n' +
                "street: " + '\n' +
                "postalTown: " + '\n' +
                "postalCode: ";
            break;
        }

        case Node.NodeTypes.Permit:
        {
            properties =
                "knaUid: " + '\n' +
                "name: " + '\n' +
                "kind: " + '\n' +
                "granted: " + '\n' +
                "grantedAt: " + '\n' +
                "createdAt: " + '\n' +
                "comment: " + '\n' +
                "citizen: ";
            break;
        }

        case Node.NodeTypes.Record:
        {
            properties =
                "knaUid: " + '\n' +
                "name: " + '\n' +
                "kind: " + '\n' +
                "active: " + '\n' +
                "registeredAt: " + '\n' +
                "unregisteredAt: " + '\n' +
                "createdAt: " + '\n' +
                "comment: " + '\n' +
                "citizen: ";
            break;
        }

        case Node.NodeTypes.Registration:
        {
            properties =
                "knaUid: " + '\n' +
                "name: " + '\n' +
                "kind: " + '\n' +
                "createdAt: " + '\n' +
                "comment: " + '\n' +
                "citizen: ";
            break;
        }

        default:
        {
            break;
        }
        }

        return(properties);
    }
Beispiel #12
0
        internal static string NodeTypeToKeyword(Node.NodeTypes n)
        {
            switch (n)
            {
            case Node.NodeTypes.UnknownNode:
                return("unknown");

            case Node.NodeTypes.UsingDirectiveSyntaxNode:
                return("usingdirective");

            case Node.NodeTypes.NamespaceDeclarationSyntaxNode:
                return("ns");

            case Node.NodeTypes.ClassDeclarationSyntaxNode:
                return("cls");

            case Node.NodeTypes.IdentifierNameSyntaxNode:
                return("id");

            case Node.NodeTypes.QualifiedNameSyntaxNode:
                return("name");

            case Node.NodeTypes.FieldDeclarationSyntaxNode:
                return("field");

            case Node.NodeTypes.VariableDeclarationSyntaxNode:
                return("vardeclaration");

            case Node.NodeTypes.VariableDeclaratorSyntaxNode:
                return("vardeclarator");

            case Node.NodeTypes.PropertyDeclarationSyntaxNode:
                return("property");

            case Node.NodeTypes.AccessorListSyntaxNode:
                return("accessorlist");

            case Node.NodeTypes.AccessorDeclarationSyntaxNode:
                return("accessordeclaration");

            case Node.NodeTypes.AttributeListSyntaxNode:
                return("attlist");

            case Node.NodeTypes.AttributeSyntaxNode:
                return("attribute");

            case Node.NodeTypes.AttributeArgumentListSyntaxNode:
                return("attarg");

            case Node.NodeTypes.BlockSyntaxNode:
                return("block");

            case Node.NodeTypes.ReturnStatementSyntaxNode:
                return("return");

            case Node.NodeTypes.MethodDeclarationSyntaxNode:
                return("method");

            case Node.NodeTypes.PredefinedTypeSyntaxNode:
                return("predeftype");

            case Node.NodeTypes.ParameterListSyntaxNode:
                return("paramlist");

            case Node.NodeTypes.ExpressionStatementSyntaxNode:
                return("expression");

            case Node.NodeTypes.InvocationExpressionSyntaxNode:
                return("invocation");

            case Node.NodeTypes.ArgumentListSyntaxNode:
                return("arglist");

            case Node.NodeTypes.AssignmentExpressionSyntaxNode:
                return("assign");

            case Node.NodeTypes.MemberAccessExpressionSyntaxNode:
                return("memberaccess");

            case Node.NodeTypes.SwitchStatementSyntaxNode:
                return("switch");

            case Node.NodeTypes.ArgumentSyntaxNode:
                return("arg");

            case Node.NodeTypes.LiteralExpressionSyntaxNode:
                return("literal");

            case Node.NodeTypes.IfStatementSyntaxNode:
                return("if");

            case Node.NodeTypes.PrefixUnaryExpressionSyntaxNode:
                return("prefix");

            case Node.NodeTypes.ParenthesizedExpressionSyntaxNode:
                return("parenthesizedexpression");

            case Node.NodeTypes.BinaryExpressionSyntaxNode:
                return("binaryexpression");

            case Node.NodeTypes.ElseClauseSyntaxNode:
                return("else");

            case Node.NodeTypes.WhileStatementSyntaxNode:
                return("while");

            case Node.NodeTypes.BreakStatementSyntaxNode:
                return("break");

            case Node.NodeTypes.UsingStatementSyntaxNode:
                return("using");

            case Node.NodeTypes.ForStatementSyntaxNode:
                return("for");

            case Node.NodeTypes.LabeledStatementSyntaxNode:
                return("labeledstatement");

            case Node.NodeTypes.BaseListSyntaxNode:
                return("baselist");

            case Node.NodeTypes.SimpleBaseTypeSyntaxNode:
                return("basetype");

            case Node.NodeTypes.GenericNameSyntaxNode:
                return("genericname");

            case Node.NodeTypes.TypeArgumentListSyntaxNode:
                return("typearg");

            case Node.NodeTypes.ParameterSyntaxNode:
                return("param");

            case Node.NodeTypes.LocalDeclarationStatementSyntaxNode:
                return("localdeclaration");

            case Node.NodeTypes.EqualsValueClauseSyntaxNode:
                return("equalsvalue");

            case Node.NodeTypes.ObjectCreationExpressionSyntaxNode:
                return("new");

            case Node.NodeTypes.TypeOfExpressionSyntaxNode:
                return("typeof");

            case Node.NodeTypes.ThrowStatementSyntaxNode:
                return("throw");

            case Node.NodeTypes.ThisExpressionSyntaxNode:
                return("this");

            case Node.NodeTypes.SimpleLambdaExpressionSyntaxNode:
                return("lambda");

            case Node.NodeTypes.ForEachStatementSyntaxNode:
                return("foreach");

            case Node.NodeTypes.TryStatementSyntaxNode:
                return("try");

            case Node.NodeTypes.CatchClauseSyntaxNode:
                return("catch");

            case Node.NodeTypes.SwitchSectionSyntaxNode:
                return("switchselection");

            case Node.NodeTypes.CaseSwitchLabelSyntaxNode:
                return("case");

            case Node.NodeTypes.DefaultSwitchLabelSyntaxNode:
                return("default");

            case Node.NodeTypes.ArrayTypeSyntaxNode:
                return("arraytype");

            case Node.NodeTypes.ArrayRankSpecifierSyntaxNode:
                return("arrayrank");

            case Node.NodeTypes.OmittedArraySizeExpressionSyntaxNode:
                return("ommittedarraysize");

            case Node.NodeTypes.ElementAccessExpressionSyntaxNode:
                return("elementaccess");

            case Node.NodeTypes.BracketedArgumentListSyntaxNode:
                return("brackedarglist");

            case Node.NodeTypes.ConditionalExpressionSyntaxNode:
                return("conditionalexpression");

            case Node.NodeTypes.PostfixUnaryExpressionSyntaxNode:
                return("unaryexpression");

            case Node.NodeTypes.ContinueStatementSyntaxNode:
                return("continue");

            case Node.NodeTypes.ConstructorDeclarationSyntaxNode:
                return("constructor");

            case Node.NodeTypes.QueryExpressionSyntaxNode:
                return("query");

            case Node.NodeTypes.FromClauseSyntaxNode:
                return("from");

            case Node.NodeTypes.QueryBodySyntaxNode:
                return("querybody");

            case Node.NodeTypes.WhereClauseSyntaxNode:
                return("where");

            case Node.NodeTypes.SelectClauseSyntaxNode:
                return("select");

            case Node.NodeTypes.DoStatementSyntaxNode:
                return("do");

            case Node.NodeTypes.NameEqualsSyntaxNode:
                return("nameequals");

            case Node.NodeTypes.EnumDeclarationSyntaxNode:
                return("enum");

            case Node.NodeTypes.AttributeArgumentSyntaxNode:
                return("attarg");

            case Node.NodeTypes.ConstructorInitializerSyntaxNode:
                return("constructorinit");

            case Node.NodeTypes.EmptyStatementSyntaxNode:
                return("empty");

            case Node.NodeTypes.InitializerExpressionSyntaxNode:
                return("initexp");

            case Node.NodeTypes.AwaitExpressionSyntaxNode:
                return("await");

            case Node.NodeTypes.AnonymousObjectCreationExpressionSyntaxNode:
                return("anonymousobjectcreation");

            case Node.NodeTypes.AnonymousObjectMemberDeclaratorSyntaxNode:
                return("anonymousobjectmemberdeclarator");

            case Node.NodeTypes.TypeParameterListSyntaxNode:
                return("typeparamlist");

            case Node.NodeTypes.TypeParameterSyntaxNode:
                return("typeparam");

            case Node.NodeTypes.DefaultExpressionSyntaxNode:
                return("defaultexpression");

            case Node.NodeTypes.InterfaceDeclarationSyntaxNode:
                return("interface");

            case Node.NodeTypes.CastExpressionSyntaxNode:
                return("cast");

            case Node.NodeTypes.BaseExpressionSyntaxNode:
                return("base");

            case Node.NodeTypes.AttributeTargetSpecifierSyntaxNode:
                return("atttarget");

            case Node.NodeTypes.AliasQualifiedNameSyntaxNode:
                return("alias");

            case Node.NodeTypes.ExplicitInterfaceSpecifierSyntaxNode:
                return("explicitinterfacespecifier");

            default:
                throw new Exception("Jag fattar inget.");
            }
        }
Beispiel #13
0
 public SearchNode(Node.NodeTypes node_type, string name)
 {
     this.NodeType = node_type;
     this.Index    = -1;
     this.Name     = name;
 }
Beispiel #14
0
 public SearchNode(Node.NodeTypes node_type, int index)
 {
     this.NodeType = node_type;
     this.Index    = index;
     this.Name     = "";
 }
Beispiel #15
0
 public SearchNode(Node.NodeTypes node_type)
 {
     this.NodeType = node_type;
     this.Index    = -1;
     this.Name     = "";
 }