## Package com.saxonica.deploy

The deploy package contains classes used at run-time in support of queries that have been compiled into Java code.

See:
Description

Interface Summary
ContextPredicateFunction: ContextPredicateFunction is an interface that must be satisfied by an object passed to a ContextFilterIterator.
SharedApplicationDataHandler: `SharedApplicationDataHandler` is an interface that can be implemented by applications wanting to run generated servlet code in an environment offering shared access to resources, for example the ability to execute many compiled queries concurrently against the same pool of in-memory documents.
SimpleAtomicComparer: Simple comparer interface for comparing two atomic values.

Class Summary
CompiledClosure: A Closure represents a value that has not yet been evaluated: the value is represented by an expression, together with saved values of all the context variables that the expression depends on.
CompiledMemoClosure: A CompiledMemoClosure is a closure that remembers the input values once they have been read the first time.
CompiledQueryServlet: This abstract class acts as a superclass for every query generated by the Saxon code generator in servlet mode.
CompiledUserQuery: This abstract class acts as a superclass for every compiled query generated by the Saxon code generator, other than queries compiled in servlet mode.
ContextFilteringIterator: ContextFilteringIterator filters a sequences by applying a boolean test to each item: the boolean test is supplied as an instance of the class `ContextPredicateFunction`.
ItemClosure: An ItemClosure represents a singleton value that has not yet been evaluated: the value is represented by an EvaluableItem object which performs the evaluation.
Tail: A sequence value implemented as the trailing part of an underlying value

## Package com.saxonica.deploy Description

The deploy package contains classes used at run-time in support of queries that have been compiled into Java code.

The classes in this package fall into several categories:

- The two classes `CompiledUserQuery` and `CompiledQueryServlet` act as superclasses for the generated code (for the command-line case and the servlet case respectively). These are used both to control invocation of the compiled code, and to provide it with run-time services such as error handling.
- Other classes such as `CompiledClosure` and `CompiledMemoClosure` represent values or iterators that are created dynamically by the generated Java code.
- `SharedApplicationDataHandler` is an interface that can be implemented by applications wanting to run generated servlet code in an environment offering shared access to resources, for example the ability to execute many compiled queries concurrently against the same pool of in-memory documents. The object that implements this interface must be accessible to the compiled query servlets when it calls `getServletContext().getAttribute("com.saxonica.servlet.applicationdata")`. The shared application data handler is called at `init()` time to supply the Saxon `Configuration` in which the query should run, and again on each servlet request to initialize the `Controller` under which the query runs, for example with values for external variables and with serialization options. The application data handler may also call `Controller.setURIResolver()` to supply a URI handler for calls on the `doc()` function, and can thus manage a pool of named documents in memory that are used by all queries within the application.

Copyright (c) Saxonica Limited. All rights reserved.