The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# -*- perl -*-
# !!! DO NOT EDIT !!!
# This file was automatically generated.
package Net::Amazon::Validate::ItemSearch::[%--$MODULE_NAME--%];

use 5.006;
use strict;
use warnings;

sub new {
    my ($class , %options) = @_;
    my $self = {
        '_default' => '[%--$DEFAULT_OPTION--%]',
        %options,
    };

[%--
 for my $opt (sort @options) {
     $OUT .= '    push @{$self->{_options}}, ' . "'$opt';\n";
 }--%]
    bless $self, $class;
}

sub user_or_default {
    my ($self, $user) = @_;
    if (defined $user && length($user) > 0) {    
        return $self->find_match($user);
    } 
    return $self->default();
}

sub default {
    my ($self) = @_;
    return $self->{_default};
}

sub find_match {
    my ($self, $value) = @_;
    for (@{$self->{_options}}) {
        return $_ if lc($_) eq lc($value);
    }
    die "$value is not a valid value for [%--$MODULE_NAME--%]!\n";
}

1;

__END__

=head1 NAME

Net::Amazon::Validate::ItemSearch::[%--$LOCALE--%]::[%--$ITEM_SEARCH--%] - valid search indicies
for the [%--$LOCALE--%] locale and the [%--$ITEM_SEARCH--%] SearchIndex.

=head1 DESCRIPTION

The default value is [%--$DEFAULT_OPTION--%], unless mode is specified.

The list of available values are:

[%--
 for my $opt (sort @options) {
     $OUT .= "    $opt\n";
 }--%]
=cut