Package xbird.xquery.expr.var

Examples of xbird.xquery.expr.var.Variable


        }
        return variable;
    }

    public XQExpression visit(VarRef ref, XQueryContext ctxt) throws XQueryException {
        Variable var = ref.getValue();
        var.visit(this, ctxt);
        boolean isLoopInvariant = var.isLoopInvariant();
        if(isLoopInvariant) {
            return hookLoopInvariant(ref);
        }
        return ref;
    }
View Full Code Here


    private static final Log LOG = LogFactory.getLog("xbird.expr");

    private ExpressionFactory() {}

    public static Variable createExternalVariable(QualifiedName varName, XQueryModule currentModule) {
        Variable defined = currentModule.getVariable(varName);
        assert (!(defined instanceof ExternalVariable));
        if(defined != null) {
            return defined;
        }
        return new ExternalVariable(varName, currentModule);
View Full Code Here

        @Override
        public XQExpression visit(CompositePath fragment, XQueryContext ctxt)
                throws XQueryException {
            PathVariable prevVar = _lastPathVariable;
            Variable src = fragment.getSourceVariable();
            src.visit(this, ctxt);
            this._lastPathVariable = prevVar;
            XQExpression filter = fragment.getFilterExpr();
            filter.visit(this, ctxt);
            return fragment;
        }
View Full Code Here

                        if(pathSrc != null) {
                            if(isFirst) {
                                persistKeyExprs = new ArrayList<XQExpression>(4);
                                searchKeyExprs = new ArrayList<XQExpression>(4);
                            }
                            Variable pv = pathSrc.getValue();
                            if(pv instanceof BindingVariable) {
                                if(searchKeyExpr instanceof CompositePath
                                        && _currentForClause != null) {
                                    assert (_currentBindings != null);
                                    final LetVariable lv = new AnonymousLetVariable(searchKeyExpr);
View Full Code Here

        }
        return call;
    }

    public XQExpression visit(GroupingSpec spec, XQueryContext ctxt) throws XQueryException {
        Variable var = spec.getKeyExpr();
        var.visit(this, ctxt);
        return spec;
    }
View Full Code Here

        }
        return variable;
    }

    public XQExpression visit(VarRef ref, XQueryContext ctxt) throws XQueryException {
        Variable var = ref.getValue();
        assert (var != null) : ref;
        var.visit(this, ctxt);
        return ref;
    }
View Full Code Here

                    String inputVarName = xpath.evaluate("./*[local-name()='input-query']/@variable", testCase);
                    if(inputVarName != null && inputVarName.length() > 0) {
                        String dateData = xpath.evaluate("./*[local-name()='input-query']/@date", testCase);
                        assert (dateData != null) : dateData;
                        QualifiedName varName = QNameTable.instantiate(XMLConstants.DEFAULT_NS_PREFIX, inputVarName);
                        Variable var = new Variable.GlobalVariable(varName, null);
                        var.setResult(new DateTimeValue(dateData, DateType.DATE));
                        xqmod.putVariable(varName, var);
                    }
                }

                // -----------------------------------------------------------
View Full Code Here

                if(testFileRelDir != null) {
                    if(fromUri) {
                        File testDataFile = new File(xqtsDir, testFileRelDir);
                        String dest = testDataFile.toURI().toString();
                        QualifiedName varName = QNameTable.instantiate(XMLConstants.DEFAULT_NS_PREFIX, varNameStr);
                        Variable var = new Variable.GlobalVariable(varName, null);
                        var.setResult(new XString(dest));
                        xqmod.putVariable(varName, var);
                    } else {
                        DTMDocument testDataDoc = _docCache.get(testDataId);
                        if(testDataDoc == null) {
                            File testDataFile = new File(xqtsDir, testFileRelDir);
                            // load test data
                            DocumentTableModel dtm = new DocumentTableModel(false);
                            dtm.loadDocument(new FileInputStream(testDataFile));
                            testDataDoc = dtm.documentNode();
                            _docCache.put(testDataId, testDataDoc);
                        }
                        // import namespace decl
                        Map<String, String> nsmap = testDataDoc.documentTable().getDeclaredNamespaces();
                        NamespaceBinder nsResolver = statEnv.getStaticalyKnownNamespaces();
                        nsResolver.declarePrefixs(nsmap);
                        // reserve variable
                        QualifiedName varName = QNameTable.instantiate(XMLConstants.DEFAULT_NS_PREFIX, varNameStr);
                        Variable var = new Variable.GlobalVariable(varName, null);
                        var.setResult(testDataDoc);
                        xqmod.putVariable(varName, var);
                    }
                } else {
                    NodeList list = (NodeList) xpath.evaluate("/*[local-name()='test-suite']/*[local-name()='sources']/*[local-name()='collection'][@ID='"
                            + testDataId + "']/*[local-name()='input-document']/text()", catalog, XPathConstants.NODESET);
                    final int listlen = list.getLength();
                    if(listlen > 0) {
                        final NodeSequence<DTMDocument> ret = new NodeSequence<DTMDocument>(new DynamicContext(statEnv));
                        for(int i = 0; i < listlen; i++) {
                            String name = list.item(i).getTextContent();
                            DTMDocument testDataDoc = _docCache.get(name);
                            if(testDataDoc == null) {
                                File testDataFile = new File(xqtsDir, name + ".xml");
                                DocumentTableModel dtm = new DocumentTableModel(false);
                                dtm.loadDocument(new FileInputStream(testDataFile));
                                testDataDoc = dtm.documentNode();
                                _docCache.put(testDataId, testDataDoc);
                            }
                            // import namespace decl
                            Map<String, String> nsmap = testDataDoc.documentTable().getDeclaredNamespaces();
                            NamespaceBinder nsResolver = statEnv.getStaticalyKnownNamespaces();
                            nsResolver.declarePrefixs(nsmap);
                            ret.addItem(testDataDoc);
                        }
                        // reserve variable
                        QualifiedName varName = QNameTable.instantiate(XMLConstants.DEFAULT_NS_PREFIX, varNameStr);
                        Variable var = new Variable.GlobalVariable(varName, null);
                        var.setResult(ret);
                        xqmod.putVariable(varName, var);
                    }
                }
            }
        }
View Full Code Here

            default:
                jj_la1[23] = jj_gen;
                jj_consume_token(-1);
                throw new ParseException();
        }
        final Variable variable;
        if(isExternal) {
            Variable extVar = currentModule.getVariable(varName);
            if(extVar != null) {
                variable = extVar;
            } else {
                variable = ExpressionFactory.createExternalVariable(varName, currentModule);
                currentModule.putVariable(varName, variable);
View Full Code Here

        String defaultNamespace = currentModule.getNamespace();
        if(defaultNamespace == null) {
            defaultNamespace = "";
        }
        QualifiedName vn = QNameUtil.parse(currentToken.image, namespaceContext, defaultNamespace);
        Variable var = currentModule.getVariable(vn);
        if(var == null) {
            error("err:XPST0008");
        }
        if(!(var instanceof ForVariable || var instanceof LetVariable)) {
            error("err:XQST0094");
View Full Code Here

TOP

Related Classes of xbird.xquery.expr.var.Variable

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.