/** * Test whether a function with a given name and arity is available * <p>This supports the function-available() function in XSLT.</p> * * @param functionName the qualified name of the function being called * @return true if a function of this name and arity is available for calling */ public boolean isAvailable(SymbolicName.F functionName) { if (base instanceof StylesheetFunctionLibrary) { StylesheetPackage pack = ((StylesheetFunctionLibrary)base).getStylesheetPackage(); UserFunction fn = pack.getFunction(functionName); if (fn != null) { Visibility v = fn.getDeclaredVisibility(); return v == Visibility.PUBLIC || v == Visibility.FINAL; } else { return false; } } else { return base.isAvailable(functionName); } }
/** * Create the function library containing stylesheet functions declared in this package */ public void createFunctionLibrary() { FunctionLibraryList functionLibrary = new FunctionLibraryList(); functionLibrary.addFunctionLibrary(config.getXSLT30FunctionSet()); functionLibrary.addFunctionLibrary(new StylesheetFunctionLibrary(this, true)); functionLibrary.addFunctionLibrary(config.getBuiltInExtensionLibraryList()); functionLibrary.addFunctionLibrary(new ConstructorFunctionLibrary(config)); if ("JS".equals(getTargetEdition()) || "JS2".equals(getTargetEdition())) { addIxslFunctionLibrary(functionLibrary); } queryFunctions = new XQueryFunctionLibrary(config); functionLibrary.addFunctionLibrary(queryFunctions); functionLibrary.addFunctionLibrary(config.getIntegratedFunctionLibrary()); config.addExtensionBinders(functionLibrary); this.functionLibrary = functionLibrary; }
for (FunctionLibrary lib : functionLibrary.getLibraryList()) { if (lib instanceof StylesheetFunctionLibrary) { if (((StylesheetFunctionLibrary) lib).isOverrideExtensionFunction()) { libraryList.addFunctionLibrary(overriding);
/** * Create the function library containing stylesheet functions declared in this package */ public void createFunctionLibrary() { FunctionLibraryList functionLibrary = new FunctionLibraryList(); functionLibrary.addFunctionLibrary(config.getXSLT30FunctionSet()); functionLibrary.addFunctionLibrary(new StylesheetFunctionLibrary(this, true)); functionLibrary.addFunctionLibrary(config.getBuiltInExtensionLibraryList()); functionLibrary.addFunctionLibrary(new ConstructorFunctionLibrary(config)); if ("JS".equals(getTargetEdition()) || "JS2".equals(getTargetEdition())) { addIxslFunctionLibrary(functionLibrary); } queryFunctions = new XQueryFunctionLibrary(config); functionLibrary.addFunctionLibrary(queryFunctions); functionLibrary.addFunctionLibrary(config.getIntegratedFunctionLibrary()); config.addExtensionBinders(functionLibrary); this.functionLibrary = functionLibrary; }
for (FunctionLibrary lib : functionLibrary.getLibraryList()) { if (lib instanceof StylesheetFunctionLibrary) { if (((StylesheetFunctionLibrary) lib).isOverrideExtensionFunction()) { libraryList.addFunctionLibrary(overriding);
/** * Create link to the owning PreparedStylesheet object * @param sheet the PreparedStylesheet */ public void setPreparedStylesheet(PreparedStylesheet sheet) { Configuration config = sheet.getConfiguration(); stylesheet = sheet; //targetNamePool = sheet.getTargetNamePool(); exec = new Executable(config); exec.setConfiguration(config); exec.setRuleManager(new RuleManager()); exec.setLocationMap(locationMap); exec.setHostLanguage(Configuration.XSLT); functionLibrary = new FunctionLibraryList(); functionLibrary.addFunctionLibrary( SystemFunctionLibrary.getSystemFunctionLibrary(SystemFunctionLibrary.FULL_XSLT)); functionLibrary.addFunctionLibrary(new StylesheetFunctionLibrary(this, true)); functionLibrary.addFunctionLibrary(config.getVendorFunctionLibrary()); functionLibrary.addFunctionLibrary(new ConstructorFunctionLibrary(config)); queryFunctions = new XQueryFunctionLibrary(config); functionLibrary.addFunctionLibrary(queryFunctions); if (config.isAllowExternalFunctions()) { javaFunctions = config.getExtensionBinder("java"); Configuration.getPlatform().addFunctionLibraries(functionLibrary, config, Configuration.XSLT); } functionLibrary.addFunctionLibrary(new StylesheetFunctionLibrary(this, false)); }
/** * Test whether a function with a given name and arity is available * <p>This supports the function-available() function in XSLT.</p> * * @param functionName the qualified name of the function being called * @return true if a function of this name and arity is available for calling */ public boolean isAvailable(SymbolicName.F functionName) { if (base instanceof StylesheetFunctionLibrary) { StylesheetPackage pack = ((StylesheetFunctionLibrary)base).getStylesheetPackage(); UserFunction fn = pack.getFunction(functionName); if (fn != null) { Visibility v = fn.getDeclaredVisibility(); return v == Visibility.PUBLIC || v == Visibility.FINAL; } else { return false; } } else { return base.isAvailable(functionName); } }
/** * Create link to the owning PreparedStylesheet object * @param sheet the PreparedStylesheet */ public void setPreparedStylesheet(PreparedStylesheet sheet) { Configuration config = sheet.getConfiguration(); stylesheet = sheet; //targetNamePool = sheet.getTargetNamePool(); exec = new Executable(config); exec.setConfiguration(config); exec.setRuleManager(new RuleManager()); exec.setLocationMap(locationMap); exec.setHostLanguage(Configuration.XSLT); functionLibrary = new FunctionLibraryList(); functionLibrary.addFunctionLibrary( SystemFunctionLibrary.getSystemFunctionLibrary(SystemFunctionLibrary.FULL_XSLT)); functionLibrary.addFunctionLibrary(new StylesheetFunctionLibrary(this, true)); functionLibrary.addFunctionLibrary(config.getVendorFunctionLibrary()); functionLibrary.addFunctionLibrary(new ConstructorFunctionLibrary(config)); queryFunctions = new XQueryFunctionLibrary(config); functionLibrary.addFunctionLibrary(queryFunctions); if (config.isAllowExternalFunctions()) { javaFunctions = config.getExtensionBinder("java"); Configuration.getPlatform().addFunctionLibraries(functionLibrary, config); } functionLibrary.addFunctionLibrary(new StylesheetFunctionLibrary(this, false)); }
/** * Create link to the owning PreparedStylesheet object * @param sheet the PreparedStylesheet */ public void setPreparedStylesheet(PreparedStylesheet sheet) { Configuration config = sheet.getConfiguration(); stylesheet = sheet; //targetNamePool = sheet.getTargetNamePool(); exec = new Executable(config); exec.setConfiguration(config); exec.setRuleManager(new RuleManager()); exec.setLocationMap(locationMap); exec.setHostLanguage(Configuration.XSLT); functionLibrary = new FunctionLibraryList(); functionLibrary.addFunctionLibrary( SystemFunctionLibrary.getSystemFunctionLibrary(SystemFunctionLibrary.FULL_XSLT)); functionLibrary.addFunctionLibrary(new StylesheetFunctionLibrary(this, true)); functionLibrary.addFunctionLibrary(config.getVendorFunctionLibrary()); functionLibrary.addFunctionLibrary(new ConstructorFunctionLibrary(config)); queryFunctions = new XQueryFunctionLibrary(config); functionLibrary.addFunctionLibrary(queryFunctions); if (config.isAllowExternalFunctions()) { javaFunctions = config.getExtensionBinder("java"); Configuration.getPlatform().addFunctionLibraries(functionLibrary, config); } functionLibrary.addFunctionLibrary(new StylesheetFunctionLibrary(this, false)); }
functionLibrary.addFunctionLibrary(MathFunctionSet.getInstance()); functionLibrary.addFunctionLibrary(new StylesheetFunctionLibrary(pack, true)); config.addExtensionBinders(functionLibrary); functionLibrary.addFunctionLibrary(new StylesheetFunctionLibrary(pack, false));
functionLibrary.addFunctionLibrary(MathFunctionSet.getInstance()); functionLibrary.addFunctionLibrary(new StylesheetFunctionLibrary(pack, true)); config.addExtensionBinders(functionLibrary); functionLibrary.addFunctionLibrary(new StylesheetFunctionLibrary(pack, false));