1 package net.sf.saxon.expr; 2 3 4 5 /** 6 * Generic interface representing a variable declaration in the static context of an XPath expression. 7 * The declaration may be internal or external to the XPath expression itself. An external 8 * VariableDeclaration is identified (perhaps created) by the bindVariable() method in the StaticContext. 9 */ 10 11 public interface VariableDeclaration { 12 13 /** 14 * Method called by a BindingReference to register the variable reference for 15 * subsequent fixup. 16 * This method is called by the XPath parser when 17 * each reference to the variable is encountered. At some time after parsing and before execution of the 18 * expression, the VariableDeclaration is responsible for calling the two methods setStaticType() 19 * and fixup() on each BindingReference that has been registered with it.<br> 20 */ 21 22 public void registerReference(BindingReference ref); 23 24 /** 25 * Get the fingerprint code that identifies the name of the variable 26 */ 27 28 public int getNameCode(); 29 30 /** 31 * Get the name of the variable for use in diagnostics - a lexical QName 32 */ 33 34 public String getVariableName(); 35 36 } 37 38 // 39 // The contents of this file are subject to the Mozilla Public License Version 1.0 (the "License"); 40 // you may not use this file except in compliance with the License. You may obtain a copy of the 41 // License at http://www.mozilla.org/MPL/ 42 // 43 // Software distributed under the License is distributed on an "AS IS" basis, 44 // WITHOUT WARRANTY OF ANY KIND, either express or implied. 45 // See the License for the specific language governing rights and limitations under the License. 46 // 47 // The Original Code is: all this file. 48 // 49 // The Initial Developer of the Original Code is Michael H. Kay 50 // 51 // Portions created by (your name) are Copyright (C) (your legal entity). All Rights Reserved. 52 // 53 // Contributor(s): none. 54 // 55