Bivio::Biz::QueryType
# Copyright (c) 1999,2000 bivio Software, Inc. All rights reserved. # $Id$ package Bivio::Biz::QueryType; use strict; use Bivio::Base 'Type.Enum'; my($_MAP) = _init(); sub can_take_path_info { my($self) = @_; return $self->get_name =~ /^(?:NEXT|PREV|THIS)_(?:DETAIL|LIST)$/ ? 1 : 0; } sub get_method { return $_MAP->{shift->get_name}->{method}; } sub get_uri_attr { return $_MAP->{shift->get_name}->{uri_attr}; } sub _init { my($map) = {}; __PACKAGE__->compile([map( { $map->{$_->[0]} = { method => $_->[2], uri_attr => $_->[3], }; ($_->[0], $_->[1]); } [NEXT_DETAIL => 1, 'format_uri_for_next', 'detail_uri'], [PREV_DETAIL => 2, 'format_uri_for_prev', 'detail_uri'], [NEXT_LIST => 3, 'format_uri_for_next_page', 'list_uri'], [PREV_LIST => 4, 'format_uri_for_prev_page', 'list_uri'], [THIS_DETAIL => 5, 'format_uri_for_this', 'detail_uri'], [THIS_LIST => 6, 'format_uri_for_this_page', 'list_uri'], [THIS_CHILD_LIST => 7, 'format_uri_for_this_child', 'detail_uri'], [THIS_PARENT => 8, 'format_uri_for_this_parent', 'parent_uri'], [THIS_PATH => 9, 'format_uri_for_this_path', 'detail_uri'], [THIS_PATH_NO_QUERY => 10, '', 'detail_uri'], [NO_QUERY => 11, '', 'list_uri'], [THIS_DETAIL_WITH_PATH => 12, 'format_uri_for_this', 'detail_uri'], [ANY_LIST => 13, 'format_uri_for_any_list', 'list_uri'], [THIS_AS_PARENT => 14, 'format_uri_for_this_as_parent', 'parent_uri'], )]); return $map; } 1;