package [Link].
system
/**
*The EnquiryHook component allows access to routines for customising ENQUIRY.<br>
* There are hooks for [Link], CONVERSION and for NOFILE enquiries.
*/
public class Enquiry {
/**
* This interface enables the implementer to set the selection criteria used by
the enquiry engine to select records.<br>
* This interface is invoked after the user has entered their choices in the
selection screen, so the implementor has the opportunity to override user choices.
* This interface provides access to the parameter usually named '[Link]' in
the enquiry build routine.
* Note that the [Link] defined for the enquiry is executed before this
interface, the filter criteria returned by this routine will
* operate on the subset of records returned by the [Link]. This is
standard T24 enquiry build routine behaviour.<br>
* <br/><b>T24 Details:</b>The [Link] hook used by this interface is
[Link].
* The T24 field specifying this hook is the [Link] field in ENQUIRY.<br>
* If an exception is thrown in the implementing class, the exception message
will be displayed on screen and no enquiry results will be displayed.
* <br>
* @param filterCriteria
List<[Link]> : The list of
FilterCriteria as entered by the user. (In T24 terms, this is [Link]<2 ...
4>)<br>
* @param enquiryContext
[Link] : Context variables for
the enquiry interaction.<br>
* @return List<[Link]> : A
new list of filter criteria to be applied during record selection.<br>
*/
public List<[Link]>
setFilterCriteria(List<[Link]>
filterCriteria, [Link]
enquiryContext){}
/**
* This interface enables the implementer to return the attribute class while
processing enquiry.<br>
* This interface is invoked during enquiry processing.<br>
* <br/><b>T24 Details:</b> The [Link] hook used by this interface is
[Link].<br>
* The T24 field specifying this hook is the ROUTINE field in ENQUIRY table.<br>
* If an exception is thrown in the implementing class this will be logged in
the [Link] and process will continue.
* <br>
* @param value String : The initial value of the attribute class. In T24 terms
this is a valid id from [Link] table.<br>
* @param enquiryContext
[Link] : Context variables for
the enquiry interaction.<br>
* @return String : The new attribute class value to be displayed to the enquiry
processing engine, to be displayed to the user or used in further calculations.<br>
*/
public String getAttributeClass(String value,
[Link] enquiryContext){}
/**
* This interface enables the implementer to set the multi values of an element
displayed in the enquiry results programatically to a list of values.<br>
* This interface is invoked during calculation of each field's value, in the
order it is specified in the list of CONVERSION fields in the enquiry definition.
* The current value of the field will be passed in, and can be used as input
for any kind of conversion that is not supported by the inbuilt conversion types.
* This interface is similar to setValues() but should be used to return a multi
values.
* The value returned by this interface is written to [Link]. Items in the list
are converted to separate multivalues.<br>
* Note: this interface will be called once for each item in the returned list.
If generating the list is expensive then consider caching it and reusing it.<br>
* <br/><b>T24 Details:</b> The [Link] hook used by this interface is
[Link].
* The T24 field specifying this hook is the CONVERSION field in ENQUIRY.<br>
* If an exception is thrown in the implementing class, the exception message
will be displayed on screen and no enquiry results will be displayed.
* <br>
* @param value String : The initial value of the field. The new value should be
returned. (In T24 terms, this is [Link])<br>
* @param currentId String : The ID of the current record being processed. (In
T24 terms, this is the 'ID' common variable)<br>
* @param currentRecord TStructure : The full record currently being processed
by the enquiry. (In T24 terms, this is [Link])<br>
* @param filterCriteria
List<[Link]> : The list of
selection criteria entered by the user. (In T24 terms, this is fields<2 ... 4> from
[Link])<br>
* @param enquiryContext
[Link] : Context variables for
the enquiry interaction.<br>
* @return List<String> : The new value to be displayed to the enquiry
processing engine, to be displayed to the user or used in further calculations.<br>
*/
public List<String> setMultiValue(String value, String currentId, TStructure
currentRecord, List<[Link]>
filterCriteria, [Link]
enquiryContext){}
/**
* This interface enables the implementer to set the selection criteria using
the values of the current record from an input screen.<br>
* This interface is invoked when the user activates a dropdown list to get the
available values for the field to which the dropdown enquiry is attached.
* <br/><b>T24 Details:</b> The [Link] hook used by this interface is
[Link].<br/>
* The T24 field specifying this hook is the [Link] field in
ENQUIRY.<br/>
* A dropdown enquiry is associated with a field through the VERSION->[Link]
field and allows the selection criteria to be defined based on the current value of
fields in the screen.<br/>
* This interface provides access to the parameter usually named '[Link]' in
the enquiry build routine.
* Note that the [Link] defined for the enquiry is executed before this
interface, the filter criteria returned by this routine will
* operate on the subset of records returned by the [Link]. This is
standard T24 enquiry build routine behaviour.<br/>
* If an exception is thrown in the implementing class, the exception message
will be displayed on screen and no enquiry results will be displayed.
* <br>
* @param filterCriteria
List<[Link]> : The list of
FilterCriteria as entered by the user. (In T24 terms, this is [Link]<2 ...
4>)<br>
* @param currentRecord TStructure : The current record to which the dropdown
enquiry is attached. (In T24 terms, this is [Link])<br>
* @param enquiryContext
[Link] : Context variables for
the enquiry interaction.<br>
* @return List<[Link]> : A
new list of filter criteria to be applied during record selection.<br>
*/
public List<[Link]>
setDropdownFilterCriteria(List<[Link]
teria> filterCriteria, TStructure currentRecord,
[Link] enquiryContext){}
/**
* This interface enables the implementer to set the value of an element
displayed in the enquiry results programatically to a list of values.<br>
* This interface is invoked during calculation of each field's value, in the
order it is specified in the list of CONVERSION fields in the enquiry definition.
* The current value of the field will be passed in, and can be used as input
for any kind of conversion that is not supported by the inbuilt conversion types.
* This interface is similar to setValue() but should be used to return a list
of values instead of a single value.
* The value returned by this interface is written to [Link]. Items in the list
are converted to separate multivalues.<br>
* Note: this interface will be called once for each item in the returned list.
If generating the list is expensive then consider caching it and reusing it.<br>
* <br/><b>T24 Details:</b> The [Link] hook used by this interface is
[Link].
* The T24 field specifying this hook is the CONVERSION field in ENQUIRY.<br>
* If an exception is thrown in the implementing class, the exception message
will be displayed on screen and no enquiry results will be displayed.
* <br>
* @param value String : The initial value of the field. The new value should be
returned. (In T24 terms, this is [Link])<br>
* @param currentId String : The ID of the current record being processed. (In
T24 terms, this is the 'ID' common variable)<br>
* @param currentRecord TStructure : The full record currently being processed
by the enquiry. (In T24 terms, this is [Link])<br>
* @param filterCriteria
List<[Link]> : The list of
selection criteria entered by the user. (In T24 terms, this is fields<2 ... 4> from
[Link])<br>
* @param enquiryContext
[Link] : Context variables for
the enquiry interaction.<br>
* @return List<String> : The new value to be displayed to the enquiry
processing engine, to be displayed to the user or used in further calculations.<br>
*/
public List<String> setValues(String value, String currentId, TStructure
currentRecord, List<[Link]>
filterCriteria, [Link]
enquiryContext){}
/**
* This interface enables the implementer to set the entire contents of a record
prior to it being processed by the enquiry engine.<br>
* This interface is invoked during enquiry processing when the field it is
attached to is calculated.<br>
* <br/><b>T24 Details:</b> The [Link] hook used by this interface is
[Link].
* The T24 field specifying this hook is the CONVERSION field in ENQUIRY.<br>
* This interface is mainly intended to support NOFILE enquiry in T24. One
strategy for building NOFILE enquiries uses a CONVERSION routine to
* modify the virtual 'record' being processed at runtime. This interface
supports that strategy.
* The output of this routine is written to the 'record' currently being used by
the enquiry.
* The structure of the record is defined in the [Link] definition
for the NOFILE, by the 'D' type fields.
* The NOFILE application should be introspected to generate .domain objects for
it, this will then create 'Record' objects for the nofile application.<br>
* The setRecord() and setValue() interfaces are both triggered from the
CONVERSION field but differ in purpose and effect.
* The currentRecord parameter of this method is used to overwrite [Link] for
the current record being processed.<br>
* If an exception is thrown in the implementing class, then the exception
message will be displayed on screen and no enquiry results will be displayed.<br>
* @param value String : The initial value of the field to which the interface
is attached. (In T24 terms, this is [Link])<br>
* @param currentId String : The ID of the current record being processed. (In
T24 terms, this is the 'ID' common variable)<br>
* @param currentRecord TStructure : The full record currently being processed
by the enquiry. (In T24 terms, this is [Link])<br>
* @param filterCriteria
List<[Link]> : The list of
selection criteria entered by the user. (In T24 terms, this is fields<2 ... 4> from
[Link])<br>
* @param enquiryContext
[Link] : Context variables for
the enquiry interaction.<br>
*/
public void setRecord(String value, String currentId, TStructure currentRecord,
List<[Link]> filterCriteria,
[Link] enquiryContext){}
/**
* This interface enables the implementer to define the list of record Ids that
the enquiry will process.<br>
* This interface is invoked during the record selection stage of running an
enquiry, and replaces the usual record selection based on a select statement on a
T24 application.
* <br/><b>T24 Details:</b> The [Link] hook used by this interface is
[Link].
* The T24 field specifying this hook is the [Link] in [Link]
(the [Link] must be 'R' in the associated multivalue group)<br>
* This interface is mainly intended to support NOFILE enquiry in T24. It
supports the 'R' type routine specified in [Link] for the nofile table.
* The implementer is expected to generate a list of recordIds for use in the
enquiry processing.<br>
* Note: Some nofile enquiries exploit a trick of returning all required
information inside the recordId, delimited with some value, for example '*', and
then
* extract the values from the recordId using the F(IELD) conversion in the
enquiry.<br>
* If an exception is thrown in the implementing class, then the exception
message will be displayed on screen and no enquiry results will be displayed.
* <br>
* @param filterCriteria
List<[Link]> : The list of
selection criteria entered by the user. In T24 terms, this comes from the common
variables [Link], [Link] and [Link].<br>
* @param enquiryContext
[Link] : Context variables for
the enquiry interaction.<br>
* @return List<String> : The list of recordIds.<br>
*/
public List<String>
setIds(List<[Link]>
filterCriteria, [Link]
enquiryContext){}
/**
* This interface enables the implementer to set the value of an element
displayed in the enquiry results programatically.<br>
* This interface is invoked during calculation of each field's value, in the
order it is specified in the list of CONVERSION fields in the enquiry definition.
* The current value of the field will be passed in, and can be used as input
for any kind of conversion that is not supported by the inbuilt conversion types.
* The value returned by this interface is written to [Link].<br>
* <br/><b>T24 Details:</b> The [Link] hook used by this interface is
[Link].
* The T24 field specifying this hook is the CONVERSION field in ENQUIRY.<br>
* If an exception is thrown in the implementing class, the exception message
will be displayed on screen and no enquiry results will be displayed.
* <br>
* @param value String : The initial value of the field. The new value should be
returned. (In T24 terms, this is [Link])<br>
* @param currentId String : The ID of the current record being processed. (In
T24 terms, this is the 'ID' common variable)<br>
* @param currentRecord TStructure : The full record currently being processed
by the enquiry. (In T24 terms, this is [Link])<br>
* @param filterCriteria
List<[Link]> : The list of
selection criteria entered by the user. (In T24 terms, this is fields<2 ... 4> from
[Link])<br>
* @param enquiryContext
[Link] : Context variables for
the enquiry interaction.<br>
* @return String : The new value to be displayed to the enquiry processing
engine, to be displayed to the user or used in further calculations.<br>
*/
public String setValue(String value, String currentId, TStructure
currentRecord, List<[Link]>
filterCriteria, [Link]
enquiryContext){}
/**
* This interface enables the implementer to set the sub values of an element
displayed in the enquiry results programatically to a list of values.<br>
* This interface is invoked during calculation of each field's value, in the
order it is specified in the list of CONVERSION fields in the enquiry definition.
* The current value of the field will be passed in, and can be used as input
for any kind of conversion that is not supported by the inbuilt conversion types.
* This interface is similar to setValue() but should be used to return a
subvalues.
* The value returned by this interface is written to [Link]. Items in the list
are converted to separate sub values.<br>
* Note: this interface will be called once for each item in the returned list.
If generating the list is expensive then consider caching it and reusing it.<br>
* <br/><b>T24 Details:</b> The [Link] hook used by this interface is
[Link].
* The T24 field specifying this hook is the CONVERSION field in ENQUIRY.<br>
* If an exception is thrown in the implementing class, the exception message
will be displayed on screen and no enquiry results will be displayed.
* <br>
* @param value String : The initial value of the field. The new value should be
returned. (In T24 terms, this is [Link])<br>
* @param currentId String : The ID of the current record being processed. (In
T24 terms, this is the 'ID' common variable)<br>
* @param currentRecord TStructure : The full record currently being processed
by the enquiry. (In T24 terms, this is [Link])<br>
* @param filterCriteria
List<[Link]> : The list of
selection criteria entered by the user. (In T24 terms, this is fields<2 ... 4> from
[Link])<br>
* @param enquiryContext
[Link] : Context variables for
the enquiry interaction.<br>
* @return List<String> : The new value to be displayed to the enquiry
processing engine, to be displayed to the user or used in further calculations.<br>
*/
public List<String> setSubValue(String value, String currentId, TStructure
currentRecord, List<[Link]>
filterCriteria, [Link]
enquiryContext){}