Ejemplo n.º 1
0
        /** 获取方法key */
        public string getKey()
        {
            if (_key == null)
            {
                if (args.isEmpty())
                {
                    _key = name;
                }
                else
                {
                    StringBuilder sb = new StringBuilder();
                    sb.Append(name);

                    foreach (MethodArgInfo v in args)
                    {
                        sb.Append(",");
                        sb.Append(v.type);
                    }

                    _key = sb.ToString();
                }
            }

            return(_key);
        }
Ejemplo n.º 2
0
        /** 添加一组 */
        public void addAll(SList <K> list)
        {
            if (list.isEmpty())
            {
                return;
            }

            K[] values = list.getValues();

            for (int i = 0, len = list.size(); i < len; ++i)
            {
                add(values[i]);
            }
        }
Ejemplo n.º 3
0
        /** 添加一组 */
        public void addAll(SList <V> list)
        {
            if (list.isEmpty())
            {
                return;
            }

            int d = _size + list._size;

            ensureCapacity(d);

            Array.Copy(list._values, 0, this._values, this._size, list._size);

            _size = d;
        }
Ejemplo n.º 4
0
        public bool init(SList <string> keyWords)
        {
            clear();

            if (keyWords != null && !keyWords.isEmpty())
            {
                string[] values = keyWords.getValues();
                string   v;

                for (int i1 = 0, len = keyWords.size(); i1 < len; ++i1)
                {
                    v = values[i1];

                    if (v == null || (v = StringUtils.trim(v)).Length == 0)
                    {
                        continue;
                    }

                    DFANode currentDFANode = dfaEntrance;
                    for (int i = 0; i < v.Length; i++)
                    {
                        char _c = v[i];
                        // 逐点加入DFA
                        char    _lc   = toLowerCaseWithoutConfict(_c);
                        DFANode _next = currentDFANode.dfaTransition.get(_lc);
                        if (_next == null)
                        {
                            _next = new DFANode();
                            currentDFANode.dfaTransition.put(_lc, _next);
                        }
                        currentDFANode = _next;
                    }
                    if (currentDFANode != dfaEntrance)
                    {
                        currentDFANode.isTerminal = true;
                    }
                }
            }

            buildFailNode();
            return(true);
        }
Ejemplo n.º 5
0
        /** 递归构造字符串 */
        private void buiildXMLString(StringBuilder sb, int tabNum)
        {
            for (int i = 0; i < tabNum; i++)
            {
                sb.Append("  ");
            }

            sb.Append('<');
            sb.Append(_name);

            string[] keys   = _propertys.getKeys();
            string[] values = _propertys.getValues();
            string   k;

            for (int i = keys.Length - 1; i >= 0; --i)
            {
                if ((k = keys[i]) != null)
                {
                    sb.Append(' ');
                    sb.Append(k);
                    sb.Append('=');
                    sb.Append('"');
                    sb.Append(values[i]);
                    sb.Append('"');
                }
            }

            if (_children.isEmpty())
            {
                if (_value != null)
                {
                    sb.Append(">");
                    sb.Append(_value);
                    sb.Append("</");
                    sb.Append(_name);
                    sb.Append(">\n");
                }
                else
                {
                    sb.Append("/>\n");
                }
            }
            else
            {
                if (_value != null)
                {
                    sb.Append(">");
                    sb.Append(_value);
                    sb.Append("\n");
                }
                else
                {
                    sb.Append(">\n");
                }

                XML[] values1 = _children.getValues();

                for (int i = 0, len = _children.size(); i < len; ++i)
                {
                    values1[i].buiildXMLString(sb, tabNum + 1);
                }

                for (int i = 0; i < tabNum; i++)
                {
                    sb.Append("  ");
                }

                sb.Append("</");
                sb.Append(_name);
                sb.Append(">\n");
            }
        }