Class: OpenWFE::FilterDefinitionExpression

Inherits:
FlowExpression show all
Defined in:
lib/openwfe/expressions/fe_filter_definition.rb

Overview

This expression binds a filter definition into a variable.

class TestFilter48a0 < ProcessDefinition
    sequence do

        set :field => "readable", :value => "bible"
        set :field => "writable", :value => "sand"
        set :field => "randw", :value => "notebook"
        set :field => "hidden", :value => "playboy"

        alice

        filter :name => "filter0" do
            sequence do
                bob
                charly
            end
        end

        doug
    end

    filter_definition :name => "filter0" do
        field :regex => "readable", :permissions => "r"
        field :regex => "writable", :permissions => "w"
        field :regex => "randw", :permissions => "rw"
        field :regex => "hidden", :permissions => ""
    end
end

In that example, the filter definition is done for filter ‘filter0’.

A filter definition accepts 4 attributes :

  • ‘name’ - simply naming the filter, the filter is then bound as a variable. This is the only mandatory attribute.

  • ‘closed’ - by default, set to ‘false’. A closed filter will not allow modifications to unspecified fields.

  • ‘add’ - by default, set to ‘true’. When true, this filter accepts adding new fields to the filtered workitem.

  • ‘remove’ - by default, set to ‘true’. When true, this filter accepts removing fields to the filtered workitem.

Inside of the process definition, fields are identified via regular expressions (‘regex’), a ‘permissions’ string is then expected with four possible values “rw”, “w”, “r” and “”.

Instance Attribute Summary

Attributes inherited from FlowExpression

#apply_time, #attributes, #children, #environment_id, #fei, #parent_id, #raw_representation

Attributes included from Contextual

#application_context

Instance Method Summary collapse

Methods inherited from FlowExpression

#cancel, #clean_children, #delete_variable, #dup_environment, #fetch_environment, #fetch_text_content, #get_binding, #get_environment, #get_parent, #get_root_environment, #has_attribute, #initialize, is_definition, is_definition?, #lookup_attribute, #lookup_attributes, #lookup_boolean_attribute, #lookup_comma_list_attribute, #lookup_downcase_attribute, #lookup_ref, #lookup_string_attribute, #lookup_sym_attribute, #lookup_value, #lookup_variable, #lookup_vf_attribute, names, #new_environment, new_exp, #owns_its_environment?, #paused?, #remove_child, #reply, #reply_to_parent, #set_variable, #store_itself, #synchronize, #to_s, #to_yaml_properties

Methods included from Contextual

#get_work_directory, #init_service, #lookup

Methods included from Logging

#ldebug, #ldebug_callstack, #lerror, #lfatal, #linfo, #llog, #lunknown, #lwarn

Methods included from OwfeServiceLocator

#get_engine, #get_error_journal, #get_expool, #get_expression_map, #get_expression_pool, #get_expression_storage, #get_expression_storages, #get_journal, #get_participant_map, #get_scheduler, #get_wfid_generator

Methods inherited from ObjectWithMeta

#class_def, meta_def, meta_eval, metaclass

Constructor Details

This class inherits a constructor from OpenWFE::FlowExpression

Instance Method Details

#apply(workitem) ⇒ Object

Will build the filter and bind it as a variable.



103
104
105
106
107
108
109
110
111
112
# File 'lib/openwfe/expressions/fe_filter_definition.rb', line 103

def apply (workitem)

    filter = build_filter workitem
    filter_name = lookup_attribute :name, workitem

    set_variable filter_name, filter \
        if filter_name and filter

    reply_to_parent workitem
end