package BAST::HasAttributes; use strict; use warnings; use base qw/Class::XML/; __PACKAGE__->has_children(attribute => 'BAST::Attribute'); sub attribute_hash { my ($self, $data) = @_; $data = {} unless defined $data; return map { ($_->name, $_->value($data)); } ($self->attribute); } sub attribute_value { my ($self, $name, $data) = @_; my ($attr) = grep { $_->name eq $name } ($self->attribute); return undef unless $attr; return $attr->value($data); } 1;