/** * Bind unbound variables (these are typically variables that reference another module * participating in a same-namespace cycle, since local forwards references are not allowed */ public void bindUnboundVariables() throws XPathException { for (Iterator iter = undeclaredVariables.values().iterator(); iter.hasNext();) { UndeclaredVariable uv = (UndeclaredVariable)iter.next(); StructuredQName qName = uv.getVariableQName(); VariableDeclaration var = (VariableDeclaration)variables.get(qName); if (var == null) { String uri = qName.getNamespaceURI(); if (importsNamespace(uri)) { QueryModule main = getTopLevelModule(); var = (VariableDeclaration)main.libraryVariables.get(qName); } } if (var == null) { XPathException err = new XPathException("Unresolved reference to variable $" + uv.getVariableQName().getDisplayName()); err.setErrorCode("XPST0008"); err.setIsStaticError(true); throw err; } else { GlobalVariableDefinition gvar = ((GlobalVariableDefinition)var); checkImportedType(gvar.getRequiredType(), gvar); uv.transferReferences(var); } } }
uvar.registerReference(ref); return ref; } else { uvar = new UndeclaredVariable(); uvar.setPackageData(main.getPackageData()); uvar.setVariableQName(qName); GlobalVariableReference ref = new GlobalVariableReference(qName); uvar.registerReference(ref); undeclaredVariables.put(qName, uvar); return ref;
UndeclaredVariable uvar = new UndeclaredVariable(); uvar.setVariableQName(qName); VariableReference ref = new VariableReference(); uvar.registerReference(ref); undeclaredVariables.put(qName, uvar); return ref;
uvar.registerReference(ref); return ref; } else { uvar = new UndeclaredVariable(); uvar.setPackageData(main.getPackageData()); uvar.setVariableQName(qName); GlobalVariableReference ref = new GlobalVariableReference(qName); uvar.registerReference(ref); undeclaredVariables.put(qName, uvar); return ref;
UndeclaredVariable uvar = new UndeclaredVariable(); uvar.setVariableQName(qName); VariableReference ref = new VariableReference(); uvar.registerReference(ref); undeclaredVariables.put(qName, uvar); return ref;
/** * Bind unbound variables (these are typically variables that reference another module * participating in a same-namespace cycle, since local forwards references are not allowed */ public void bindUnboundVariables() throws XPathException { for (Iterator iter = undeclaredVariables.values().iterator(); iter.hasNext();) { UndeclaredVariable uv = (UndeclaredVariable)iter.next(); StructuredQName qName = uv.getVariableQName(); VariableDeclaration var = (VariableDeclaration)variables.get(qName); if (var == null) { String uri = qName.getNamespaceURI(); if (importsNamespace(uri)) { QueryModule main = getTopLevelModule(this); var = (VariableDeclaration)main.libraryVariables.get(qName); } } if (var == null) { XPathException err = new XPathException("Unresolved reference to variable $" + uv.getVariableQName().getDisplayName()); err.setErrorCode("XPST0008"); err.setIsStaticError(true); throw err; } else { GlobalVariableDefinition gvar = ((GlobalVariableDefinition)var); checkImportedType(gvar.getRequiredType(), gvar); uv.transferReferences(var); } } }
StructuredQName qName = uv.getVariableQName(); GlobalVariable var = variables.get(qName); if (var == null) { uv.getVariableQName().getDisplayName()); err.setErrorCode("XPST0008"); err.setIsStaticError(true); throw err; } else { uv.transferReferences(var);
StructuredQName qName = uv.getVariableQName(); GlobalVariable var = variables.get(qName); if (var == null) { uv.getVariableQName().getDisplayName()); err.setErrorCode("XPST0008"); err.setIsStaticError(true); throw err; } else { uv.transferReferences(var);