|
|
(3 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
− | == What is Record Filter ==
| + | #REDIRECT [[SMILA/Documentation/Data_Model_and_Serialization_Formats#Record Filters]] |
− | | + | |
− | Ordinary, Record contains many attributes and annotations but only a few of them are used. To increase productivity, decrease information sent (by SCA) or 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 ==
| + | |
− | Schema: org.eclipse.smila.datamodel.tools/schemas/RecordFilters.xsd
| + | |
− | | + | |
− | Configuration is a list of filters (tag Filter) identified by attribute “name”. Every filter specified copy rules for Attributes/Annotations.
| + | |
− | | + | |
− | == Configuration Example ==
| + | |
− | | + | |
− | <source lang="xml">
| + | |
− | <RecordFilters>
| + | |
− | <Filter name="only-attributes">
| + | |
− | <Attribute name="*"/>
| + | |
− | </Filter>
| + | |
− | <Filter name="no-filter">
| + | |
− | <Attribute name="*" keepAnnotations="true"/>
| + | |
− | <Annotation name="*"/>
| + | |
− | </Filter>
| + | |
− | <Filter name="nothing"/>
| + | |
− | <Filter name="only-attribute1">
| + | |
− | <Attribute name="attribute1"/>
| + | |
− | </Filter>
| + | |
− | <Filter name="filter-single-and-datetime">
| + | |
− | <Attribute name="single value"/>
| + | |
− | <Attribute name="datetime value"/>
| + | |
− | </Filter>
| + | |
− | </RecordFilters>
| + | |
− | </source>
| + | |
− | | + | |
− | == Sample Usage ==
| + | |
− | Utility class org.eclipse.smila.datamodel.tools.record.filter.RecordFilterHelper
| + | |
− | | + | |
− | <source lang="java">
| + | |
− | RecordFilterHelper recordFilterHelper = new RecordFilterHelper(configStream);
| + | |
− | Record newRecord = recordFilterHelper.filter(record, "only-attributes"); | + | |
− | </source>
| + | |
− | | + | |
− | 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.
| + | |
− | | + | |
− | <source lang="java">
| + | |
− | 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;
| + | |
− | }
| + | |
− | </source>
| + | |
− | | + | |
− | [[Category:SMILA]]
| + | |