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): UserDefinedFunction
Finds 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.ExceptionInInitializerError
if there is an issue initializing the UDF objectjava.lang.IllegalArgumentException
if the UDF doesn't have a no-argument constructorjava.lang.ReflectiveOperationException
if the UDF doesn't have a no-argument constructor or if there is an issue initializing the UDF objectjava.lang.SecurityException
if 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.