package C4::TmplTokenType; # Copyright 2011 Tamil # # This file is part of Koha. # # Koha is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # Koha is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Koha; if not, see . use Modern::Perl; use base 'Exporter'; ############################################################################### =head1 NAME C4::TmplTokenType.pm - Types of TmplToken objects =head1 DESCRIPTION This is a Java-style "safe enum" singleton class for types of TmplToken objects. The predefined constants are =cut ############################################################################### ############################################################################### use vars qw( $_text $_text_parametrized $_cdata $_tag $_decl $_pi $_directive $_comment $_null $_unknown ); BEGIN { our @EXPORT_OK = qw( TEXT TEXT_PARAMETRIZED CDATA TAG DECL PI DIRECTIVE COMMENT UNKNOWN ); my $new = sub { my $this = 'C4::TmplTokenType'; #shift; my $class = ref($this) || $this; my $self = {}; bless $self, $class; ( $self->{'id'}, $self->{'name'}, $self->{'desc'} ) = @_; return $self; }; $_text = &$new( 0, 'TEXT' ); $_text_parametrized = &$new( 8, 'TEXT-PARAMETRIZED' ); $_cdata = &$new( 1, 'CDATA' ); $_tag = &$new( 2, 'TAG' ); $_decl = &$new( 3, 'DECL' ); $_pi = &$new( 4, 'PI' ); $_directive = &$new( 5, 'DIRECTIVE' ); $_comment = &$new( 6, 'COMMENT' ); $_unknown = &$new( 7, 'UNKNOWN' ); } =head2 to_string Missing POD for to_string. =cut sub to_string { my $this = shift; return $this->{'name'}; } sub TEXT { $_text } sub TEXT_PARAMETRIZED { $_text_parametrized } sub CDATA { $_cdata } sub TAG { $_tag } sub DECL { $_decl } sub PI { $_pi } sub DIRECTIVE { $_directive } sub COMMENT { $_comment } sub UNKNOWN { $_unknown } ############################################################################### =over =item TEXT normal text (#text in the DTD) =item TEXT_PARAMETRIZED parametrized normal text (result of simple recognition of text interspersed with directives; this has to be explicitly enabled in the scanner) =item CDATA normal text (CDATA in the DTD) =item TAG something that has the form of an HTML tag =item DECL something that has the form of an SGML declaration =item PI something that has the form of an SGML processing instruction =item DIRECTIVE a Template Toolkit directive =item COMMENT something that has the form of an HTML comment (and is not recognized as an HTML::Template directive) =item UNKNOWN something that is not recognized at all by the scanner =back Note that end of file is currently represented by undef, instead of a constant predefined by this module. =cut 1;