/** Non-standard constructor to create an internal call on key() with a known key fingerprint */ public static KeyFn internalKeyCall( NamePool pool, int fingerprint, String name, Expression value, Expression doc) { KeyFn k = new KeyFn(); Expression[] arguments = {new StringValue(name), value, doc}; k.argument = arguments; k.keyFingerprint = fingerprint; k.checked = true; k.internal = true; k.setDetails(StandardFunction.getFunction("key", 3)); k.setFunctionNameCode(pool.allocate("fn", NamespaceConstant.FN, "key")); k.adoptChildExpression(value); k.adoptChildExpression(doc); return k; }