1 package net.sf.saxon.expr; 2 import net.sf.saxon.value.SequenceType; 3 import net.sf.saxon.value.Value; 4 5 /** 6 * BindingReference is a interface used to mark references to a variable declaration. The main 7 * implementation is VariableReference, which represents a reference to a variable in an XPath 8 * expression, but it is also used to represent a reference to a variable in a saxon:assign instruction. 9 */ 10 11 public interface BindingReference { 12 13 /** 14 * Fix up the static type of this variable reference; optionally, supply a constant value for 15 * the variable. Also supplies other static properties of the expression to which the variable 16 * is bound, for example whether it is an ordered node-set. 17 */ 18 19 public void setStaticType(SequenceType type, Value constantValue, int properties); 20 21 /** 22 * Fix up this binding reference to a binding 23 */ 24 25 public void fixup(Binding binding); 26 27 } 28 29 // 30 // The contents of this file are subject to the Mozilla Public License Version 1.0 (the "License"); 31 // you may not use this file except in compliance with the License. You may obtain a copy of the 32 // License at http://www.mozilla.org/MPL/ 33 // 34 // Software distributed under the License is distributed on an "AS IS" basis, 35 // WITHOUT WARRANTY OF ANY KIND, either express or implied. 36 // See the License for the specific language governing rights and limitations under the License. 37 // 38 // The Original Code is: all this file. 39 // 40 // The Initial Developer of the Original Code is Michael H. Kay. 41 // 42 // Portions created by (your name) are Copyright (C) (your legal entity). All Rights Reserved. 43 // 44 // Contributor(s): none. 45 // 46