abstract class UserDefinedFunctionProvider extends AnyRef
Abstract class used by ServiceLoader to poll for UDF providers on classpath.
Through this class, several User Defined Functions can be made available to Daffodil via a single entry in the META-INF/services file.
UDF Providers must subclass this, and must initialize the userDefinedFunctionClasses array with all the UDF classes it is providing.
If the UDFs being provided have constructors with arguments, the provider subclass must also implement the createUserDefinedFunction to return an initialized function class object based on the supplied namespace and name.
Subclasses must also supply a src/META-INF/services/org.apache.daffodil.udf.UserDefinedFunctionProvider file in their JAVA project in order to be discoverable by Daffodil.
- Alphabetic
- By Inheritance
- UserDefinedFunctionProvider
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
-  new UserDefinedFunctionProvider()
Abstract Value Members
-   abstract  def getUserDefinedFunctionClasses(): Array[Class[_ <: AnyRef]]Must be implemented to return the classes of the User Defined Function this provider is aware of/providing Must be implemented to return the classes of the User Defined Function this provider is aware of/providing - returns
- array of the different UserDefinedFunction classes it provides 
 
Concrete Value Members
-   final  def !=(arg0: Any): Boolean- Definition Classes
- AnyRef → Any
 
-   final  def ##: Int- Definition Classes
- AnyRef → Any
 
-   final  def ==(arg0: Any): Boolean- Definition Classes
- AnyRef → Any
 
-   final  def asInstanceOf[T0]: T0- Definition Classes
- Any
 
-    def clone(): AnyRef- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
 
-    def createUserDefinedFunction(namespaceURI: String, fName: String): UserDefinedFunctionFinds and initializes User Defined Function class based on namespace and name provided. Finds and initializes User Defined Function class based on namespace and name provided. The UserDefinedFunctionIdentification annotation applied to the function class must match name and namespaceURI field passed in from the schema. Must be overloaded if the function class's constructor takes arguments. Otherwise it will throw exceptions. - namespaceURI
- XML namespace associated with schema function call 
- fName
- function name called in schema 
- returns
- initialized UserDefinedFunction object that must contain evaluate function with desired functionality 
 - Exceptions thrown
- java.lang.ExceptionInInitializerErrorif there is an issue initializing the UDF object- java.lang.IllegalArgumentExceptionif the UDF doesn't have a no-argument constructor- java.lang.ReflectiveOperationExceptionif the UDF doesn't have a no-argument constructor or if there is an issue initializing the UDF object- java.lang.SecurityExceptionif security manager exists and disallows access
 
-   final  def eq(arg0: AnyRef): Boolean- Definition Classes
- AnyRef
 
-    def equals(arg0: AnyRef): Boolean- Definition Classes
- AnyRef → Any
 
-    def finalize(): Unit- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
 
-   final  def getClass(): Class[_ <: AnyRef]- Definition Classes
- AnyRef → Any
- Annotations
- @native()
 
-    def hashCode(): Int- Definition Classes
- AnyRef → Any
- Annotations
- @native()
 
-   final  def isInstanceOf[T0]: Boolean- Definition Classes
- Any
 
-   final  def ne(arg0: AnyRef): Boolean- Definition Classes
- AnyRef
 
-   final  def notify(): Unit- Definition Classes
- AnyRef
- Annotations
- @native()
 
-   final  def notifyAll(): Unit- Definition Classes
- AnyRef
- Annotations
- @native()
 
-   final  def synchronized[T0](arg0: => T0): T0- Definition Classes
- AnyRef
 
-    def toString(): String- Definition Classes
- AnyRef → Any
 
-   final  def wait(): Unit- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
 
-   final  def wait(arg0: Long, arg1: Int): Unit- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
 
-   final  def wait(arg0: Long): Unit- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
 
This is the documentation for the Apache Daffodil Scala API.
Package structure
org.apache.daffodil.sapi - Provides the classes necessary to compile DFDL schemas, parse and unparse files using the compiled objects, and retrieve results and parsing diagnostics
org.apache.daffodil.udf - Provides the classes necessary to create User Defined Functions to extend the DFDL expression language
org.apache.daffodil.runtime1.layers.api - Provides the classes necessary to create custom Layer extensions to DFDL.