Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "SMILA/Documentation/Record Filter"
m |
|||
Line 6: | Line 6: | ||
Schema: org.eclipse.eilf.datamodel.tools/schemas/RecordFilters.xsd | Schema: org.eclipse.eilf.datamodel.tools/schemas/RecordFilters.xsd | ||
− | Configuration is a list of filters (tag Filter) identified by attribute | + | Configuration is a list of filters (tag Filter) identified by attribute “name”. Every filter specified copy rules for Attributes/Annotations. |
== Configuration Example == | == Configuration Example == | ||
Line 40: | Line 40: | ||
Record filter will search first appropriate Filter by name ("only-attributes") specified. If filter not found, then RecordFilterNotFoundException will be thrown. | 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 will be found | + | 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. |
Line 46: | Line 46: | ||
One Record Filter instance is preloaded by Blackboard service (org.eclipse.eilf.blackboard). | One Record Filter instance is preloaded by Blackboard service (org.eclipse.eilf.blackboard). | ||
− | It loads Record Filer configuration from | + | It loads Record Filer configuration from “configuration/org.eclipse.eilf.blackboard/RecordFilters.xml” file and shares following interface methods related to record filtering. |
<source lang="java"> | <source lang="java"> | ||
Line 53: | Line 53: | ||
public Record getRecord(final Id id, final String filterName) throws BlackboardAccessException,RecordFilterNotFoundException; | public Record getRecord(final Id id, final String filterName) throws BlackboardAccessException,RecordFilterNotFoundException; | ||
public Record filterRecord(final Record record, final String filterName) throws RecordFilterNotFoundException; | public Record filterRecord(final Record record, final String filterName) throws RecordFilterNotFoundException; | ||
+ | } | ||
</source> | </source> | ||
[[Category:SMILA]] | [[Category:SMILA]] |
Revision as of 08:03, 20 August 2008
Contents
What is Record Filter
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.eilf.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
<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>
Sample Usage
Utility class org.eclipse.eilf.datamodel.tools.record.filter.RecordFilterHelper
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.eilf.blackboard). It loads Record Filer configuration from “configuration/org.eclipse.eilf.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; }