A result set filter is a custom Java class an experienced developer
writes in order to specifically manipulate the rows or columns of data returned from a read
operation for an MBO.
When a read operation returns data that does not completely suit the business
requirements for your MBO, you can write and add a filter to the MBO to customize the
data into the form you need. You can chain multiple filters together. Multiple filters
are processed in the order they are added, each applying an incremental change to the
data. Consequently, Sybase recommends that you always preview the results, taking note
that the MBO has a different set of attributes than it would have had directly from the
read operation. You can map and use the altered attributes in the same way you would do
so for a regular attribute from an unfiltered read
operation.
Note: The
filter interfaces are defined in terms of java.sql.ResultSet and
java.sql.ResultSetMetaData, but these standard JDBC interfaces
tend to be read-only implementations. To change data, use a
CachedRowSetImpl object instead. This object implements
ResultSet but also allows you to modify row data.
Example: a simple SELECT statement filter
Suppose you have an MBO based on this query that returns customer information, and you do not want first name and last name divided between two columns (fname and lname) :
SELECT * FROM sampledb.customer
Instead, write a filter that replaces these columns with a
single concatenated "commonName" column.
Note: You could also implement the above example with a more advanced SQL statement with additional computation in the MBO definition:
SELECT id, commonName=fname+' '+lname, address, city, state, zip, phone, company_name FROM customer