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
- All
Instance Constructors
- new UserDefinedFunctionProvider()
Abstract Value Members
-
abstract
def
getUserDefinedFunctionClasses(): Array[Class[_]]
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( ... ) @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: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- 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( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @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.