예제 #1
0
        //UPGRADE_TODO: Class 'java.io.DataInputStream' was converted to 'System.IO.BinaryReader' which has a different behavior. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1073_javaioDataInputStream'"
        public override void  readExternal(System.IO.BinaryReader in_Renamed, PrototypeFactory pf)
        {
            init_context = ExtUtil.readInt(in_Renamed);
            if (init_context == INIT_CONTEXT_EXPR)
            {
                filtExpr = (XPathFilterExpr)ExtUtil.read(in_Renamed, typeof(XPathFilterExpr), pf);
            }

            System.Collections.ArrayList v = (System.Collections.ArrayList)ExtUtil.read(in_Renamed, new ExtWrapList(typeof(XPathStep)), pf);
            steps = new XPathStep[v.Count];
            for (int i = 0; i < steps.Length; i++)
            {
                steps[i] = ((XPathStep)v[i]).intern();
            }
        }
예제 #2
0
        public void readExternal(BinaryReader in_, PrototypeFactory pf)
        {
            init_context = ExtUtil.readInt(in_);
            if (init_context == INIT_CONTEXT_EXPR)
            {
                filtExpr = (XPathFilterExpr)ExtUtil.read(in_, typeof(XPathFilterExpr), pf);
            }

            ArrayList v = (ArrayList)ExtUtil.read(in_, new ExtWrapList(typeof(XPathStep)), pf);

            steps = new XPathStep[v.Count];
            for (int i = 0; i < steps.Length; i++)
            {
                steps[i] = (XPathStep)v[i];
            }
        }
예제 #3
0
        public Boolean equals(Object o)
        {
            if (o is XPathFilterExpr)
            {
                XPathFilterExpr fe = (XPathFilterExpr)o;

                ArrayList a = new ArrayList();
                for (int i = 0; i < predicates.Length; i++)
                {
                    a.Add(predicates[i]);
                }
                ArrayList b = new ArrayList();
                for (int i = 0; i < fe.predicates.Length; i++)
                {
                    b.Add(fe.predicates[i]);
                }

                return(x.Equals(fe.x) && ExtUtil.vectorEquals(a, b));
            }
            else
            {
                return(false);
            }
        }
예제 #4
0
        public override bool Equals(System.Object o)
        {
            if (o is XPathFilterExpr)
            {
                XPathFilterExpr fe = (XPathFilterExpr)o;

                System.Collections.ArrayList a = System.Collections.ArrayList.Synchronized(new System.Collections.ArrayList(10));
                for (int i = 0; i < predicates.Length; i++)
                {
                    a.Add(predicates[i]);
                }
                System.Collections.ArrayList b = System.Collections.ArrayList.Synchronized(new System.Collections.ArrayList(10));
                for (int i = 0; i < fe.predicates.Length; i++)
                {
                    b.Add(fe.predicates[i]);
                }

                return(x.Equals(fe.x) && ExtUtil.vectorEquals(a, b));
            }
            else
            {
                return(false);
            }
        }
예제 #5
0
 public XPathPathExpr(XPathFilterExpr filtExpr, XPathStep[] steps) : this(INIT_CONTEXT_EXPR, steps)
 {
     this.filtExpr = filtExpr;
 }
예제 #6
0
        public void print(Object o)
        {
            indent += 1;

            if (o is XPathStringLiteral)
            {
                XPathStringLiteral x = (XPathStringLiteral)o;
                printStr("strlit {" + x.s + "}");
            }
            else if (o is XPathNumericLiteral)
            {
                XPathNumericLiteral x = (XPathNumericLiteral)o;
                printStr("numlit {" + x.d + "}");
            }
            else if (o is XPathVariableReference)
            {
                XPathVariableReference x = (XPathVariableReference)o;
                printStr("var {" + x.id.ToString() + "}");
            }
            else if (o is XPathArithExpr)
            {
                XPathArithExpr x  = (XPathArithExpr)o;
                String         op = null;
                switch (x.op)
                {
                case XPathArithExpr.ADD: op = "add"; break;

                case XPathArithExpr.SUBTRACT: op = "subtr"; break;

                case XPathArithExpr.MULTIPLY: op = "mult"; break;

                case XPathArithExpr.DIVIDE: op = "div"; break;

                case XPathArithExpr.MODULO: op = "mod"; break;
                }
                printStr(op + " {{");
                print(x.a);
                printStr(" } {");
                print(x.b);
                printStr("}}");
            }
            else if (o is XPathBoolExpr)
            {
                XPathBoolExpr x  = (XPathBoolExpr)o;
                String        op = null;
                switch (x.op)
                {
                case XPathBoolExpr.AND: op = "and"; break;

                case XPathBoolExpr.OR: op = "or"; break;
                }
                printStr(op + " {{");
                print(x.a);
                printStr(" } {");
                print(x.b);
                printStr("}}");
            }
            else if (o is XPathCmpExpr)
            {
                XPathCmpExpr x  = (XPathCmpExpr)o;
                String       op = null;
                switch (x.op)
                {
                case XPathCmpExpr.LT: op = "lt"; break;

                case XPathCmpExpr.LTE: op = "lte"; break;

                case XPathCmpExpr.GT: op = "gt"; break;

                case XPathCmpExpr.GTE: op = "gte"; break;
                }
                printStr(op + " {{");
                print(x.a);
                printStr(" } {");
                print(x.b);
                printStr("}}");
            }
            else if (o is XPathEqExpr)
            {
                XPathEqExpr x  = (XPathEqExpr)o;
                String      op = x.equal ? "eq" : "neq";
                printStr(op + " {{");
                print(x.a);
                printStr(" } {");
                print(x.b);
                printStr("}}");
            }
            else if (o is XPathUnionExpr)
            {
                XPathUnionExpr x = (XPathUnionExpr)o;
                printStr("union {{");
                print(x.a);
                printStr(" } {");
                print(x.b);
                printStr("}}");
            }
            else if (o is XPathNumNegExpr)
            {
                XPathNumNegExpr x = (XPathNumNegExpr)o;
                printStr("neg {");
                print(x.a);
                printStr("}");
            }
            else if (o is XPathFuncExpr)
            {
                XPathFuncExpr x = (XPathFuncExpr)o;
                if (x.args.Length == 0)
                {
                    printStr("func {" + x.id.ToString() + ", args {none}}");
                }
                else
                {
                    printStr("func {" + x.id.ToString() + ", args {{");
                    for (int i = 0; i < x.args.Length; i++)
                    {
                        print(x.args[i]);
                        if (i < x.args.Length - 1)
                        {
                            printStr(" } {");
                        }
                    }
                    printStr("}}}");
                }
            }
            else if (o is XPathPathExpr)
            {
                XPathPathExpr x    = (XPathPathExpr)o;
                String        init = null;

                switch (x.init_context)
                {
                case XPathPathExpr.INIT_CONTEXT_ROOT: init = "root"; break;

                case XPathPathExpr.INIT_CONTEXT_RELATIVE: init = "relative"; break;

                case XPathPathExpr.INIT_CONTEXT_EXPR: init = "expr"; break;
                }

                printStr("path {init-context:" + init + ",");

                if (x.init_context == XPathPathExpr.INIT_CONTEXT_EXPR)
                {
                    printStr(" init-expr:{");
                    print(x.filtExpr);
                    printStr(" }");
                }

                if (x.steps.Length == 0)
                {
                    printStr(" steps {none}");
                    printStr("}");
                }
                else
                {
                    printStr(" steps {{");
                    for (int i = 0; i < x.steps.Length; i++)
                    {
                        print(x.steps[i]);
                        if (i < x.steps.Length - 1)
                        {
                            printStr(" } {");
                        }
                    }
                    printStr("}}}");
                }
            }
            else if (o is XPathFilterExpr)
            {
                XPathFilterExpr x = (XPathFilterExpr)o;

                printStr("filter-expr:{{");
                print(x.x);

                if (x.predicates.Length == 0)
                {
                    printStr(" } predicates {none}}");
                }
                else
                {
                    printStr(" } predicates {{");
                    for (int i = 0; i < x.predicates.Length; i++)
                    {
                        print(x.predicates[i]);
                        if (i < x.predicates.Length - 1)
                        {
                            printStr(" } {");
                        }
                    }
                    printStr(" }}}");
                }
            }
            else if (o is XPathStep)
            {
                XPathStep x    = (XPathStep)o;
                String    axis = null;
                String    test = null;

                axis = XPathStep.axisStr(x.axis);
                test = x.testStr();

                if (x.predicates.Length == 0)
                {
                    printStr("step {axis:" + axis + " test:" + test + " predicates {none}}");
                }
                else
                {
                    printStr("step {axis:" + axis + " test:" + test + " predicates {{");
                    for (int i = 0; i < x.predicates.Length; i++)
                    {
                        print(x.predicates[i]);
                        if (i < x.predicates.Length - 1)
                        {
                            printStr(" } {");
                        }
                    }
                    printStr("}}}");
                }
            }

            indent -= 1;
        }