Skip to main content
Jump to: navigation, search

SMILA/Documentation/Record Filter

< SMILA‎ | Documentation
Revision as of 08:59, 26 March 2009 by (Talk | contribs) (What is Record Filter)

What is Record Filter

Ordinary, Record contains many attributes and annotations but only a few of them are used. To increase productivity, decrease information stored in JMS queue its better to strip unused data. Record filter is a tool that allows to create a copy of Record with only filtered Attributes and Annotations. Configuration with filtering rules should be described as XML.



Configuration is a list of filters (tag Filter) identified by attribute “name”. Every filter specified copy rules for Attributes/Annotations.

Configuration Example

  <Filter name="only-attributes">
    <Attribute name="*"/>
  <Filter name="no-filter">
    <Attribute name="*" keepAnnotations="true"/>
    <Annotation name="*"/>
  <Filter name="nothing"/>
  <Filter name="only-attribute1">
    <Attribute name="attribute1"/>
  <Filter name="filter-single-and-datetime">
    <Attribute name="single value"/>
    <Attribute name="datetime value"/>

Sample Usage

Utility class

RecordFilterHelper recordFilterHelper = new RecordFilterHelper(configStream);
Record newRecord = recordFilterHelper.filter(record, "only-attributes");

Record filter will search first appropriate Filter by name ("only-attributes") specified. If filter not found, then RecordFilterNotFoundException will be thrown.

Attribute/Annotation will be copied if correspondent, by name, Attribute/Annotation tag Filter will be found. Attribute "keepAnnotations" is a flag to copy internal attribute annotations or not.

Blackboard Service Record Filter

One Record Filter instance is preloaded by Blackboard service (org.eclipse.smila.blackboard). It loads Record Filer configuration from “configuration/org.eclipse.smila.blackboard/RecordFilters.xml” file and shares following interface methods related to record filtering.

public interface BlackboardService {
public Record getRecord(final Id id, final String filterName) throws BlackboardAccessException,RecordFilterNotFoundException;
public Record filterRecord(final Record record, final String filterName) throws RecordFilterNotFoundException;

Back to the top