| CQL-Parser documentation | Contained in the CQL-Parser distribution. |
CQL::PrefixNode - represents a prefix node in a CQL parse tree
use CQL::PrefixNode;
my $prefix = CQL::PrefixNode->new(
name => '',
identifier => '',
subtree => $node
);
Creates a new CQL::PrefixNode inducing a mapping from the specified qualifier-set name to the specified identifier across the specified subtree.
| CQL-Parser documentation | Contained in the CQL-Parser distribution. |
package CQL::PrefixNode; use strict; use warnings; use base qw( CQL::Node ); use CQL::Prefix; use Carp qw( croak );
sub new { my ($class,%opts) = @_; croak( 'must supply name' ) if ! exists $opts{name}; croak( 'must supply identifier' ) if ! exists $opts{identifier}; croak( 'must supply subtree' ) if ! exists $opts{subtree}; my $prefix = CQL::Prefix->new( name => $opts{name}, identifier => $opts{identifier} ); my $self = { prefix => $prefix, subtree => $opts{subtree} }; return bless $self, ref($class) || $class; }
sub getPrefix { return shift->{prefix}; }
sub getSubtree { return shift->{subtree}; }
sub toCQL { my $self = shift; my $prefix = $self->getPrefix(); my $subtree = $self->getSubtree(); return ">" . $prefix->getName() . '="' . $prefix->getIdentifier() . '" ' . '(' . $subtree->toCQL() . ')'; }
sub toXCQL { my ($self,$level,@prefixes) = @_; $level = 0 if ! $level; push( @prefixes, $self->getPrefix() ); my $xml = $self->getSubtree()->toXCQL( $level, @prefixes ); return $self->addNamespace( $level, $xml ); } 1;