use DX::Action::SetBoundValue;
use DX::Action::AddBoundValue;
+use DX::Utils qw(:event_types);
use DX::Class;
with 'DX::Role::ActionBuilder';
sub can_set_value { shift->inner_action_builder->can_set_value }
+sub aperture_for_set_value {
+ my ($self) = @_;
+ return [] unless $self->can_set_value;
+ [
+ [ VALUE_SET ,=> @{$self->target_path} ],
+ @{$self->inner_action_builder->aperture_for_set_value},
+ ]
+}
+
sub action_for_set_value {
my ($self, $value) = @_;
my $inner_action = $self->inner_action_builder->action_for_set_value($value);
sub can_add_member { shift->inner_action_builder->can_add_member }
+sub aperture_for_add_member {
+ my ($self, $at) = @_;
+ return [] unless $self->can_add_member;
+ [
+ [ VALUE_SET ,=> @{$self->target_path} ],
+ @{$self->inner_action_builder->aperture_for_add_member($at)},
+ ]
+}
+
sub action_for_add_member {
my ($self, $at, $value) = @_;
$at = $at->string_value if ref($at);