package Thrift::IDL::Definition; =head1 NAME Thrift::IDL::Definition =head1 DESCRIPTION Inherits from L =cut use strict; use warnings; use base qw(Thrift::IDL::Base); =head1 METHODS =head2 full_name =cut sub full_name { my $self = shift; if (! $self->can('name')) { die ref($self)."->full_name() doesn't make contextual sense"; } if (! $self->{header}) { die ref($self)."->full_name() has no header to compute the full name from"; } my @parts = split /\./, $self->name; if (int @parts > 1) { return $self->name; } else { return join '.', $self->{header}->basename || '', $self->name; } } =head2 local_name Returns the last part of the full_name. =cut sub local_name { my $self = shift; if (! $self->can('name')) { die ref($self)."->local_name() doesn't make contextual sense"; } my @parts = split /\./, $self->name; return $parts[ $#parts ]; } 1;