package WebService::TFL::TubeStatus::Response::Line; use Moo; use Types::Standard -all; use WebService::TFL::TubeStatus::Types -all; use WebService::TFL::TubeStatus::Response::LineStatus; use namespace::autoclean; has id => ( is => 'ro', isa => Num, required => 1, ); has name => ( is => 'ro', isa => Str, required => 1, ); has status => ( is => 'ro', isa => LineStatusT, required => 1, ); sub new_from_xml { my ($class,$line,$status,$xpath) = @_; my %init_arg; $init_arg{id} = $line->findvalue(q{@ID}); $init_arg{name} = $line->findvalue(q{@Name}); $init_arg{status} = WebService::TFL::TubeStatus::Response::LineStatus->new_from_xml($status,$xpath); return $class->new(\%init_arg); } 1;