blob: e635d3d1d015d91a0f23b99826bbdb14501b143a [file] [log] [blame]
package KorAP::VirtualCorpus::Doc;
use strict;
use warnings;
use base 'KorAP::VirtualCorpus';
# Constructor
sub new {
my $class = shift;
bless {
key => shift,
match => 'eq',
type => 'string',
value => ''
}, $class;
};
# Clone document VC
sub clone {
my $self = shift;
bless {
key => $self->{key},
match => $self->{match},
type => $self->{type},
value => $self->{value},
}, __PACKAGE__;
};
# Return object type
sub koral_type {
return 'Doc';
};
# Get or set type
sub type {
my $self = shift;
if (@_) {
$self->{type} = shift;
return $self;
};
return $self->{type};
};
# Get or set match
sub match {
my $self = shift;
if (@_) {
$self->{match} = shift;
return $self;
};
return $self->{match};
};
# Get or set key
sub key {
my $self = shift;
if (@_) {
$self->{key} = shift;
return $self;
};
return $self->{key};
};
# Get or set value
sub value {
my $self = shift;
if (@_) {
$self->{value} = shift;
return $self;
};
return $self->{value};
};
# Stringify fragment
sub _to_fragment {
my $self = shift;
my $json = '{';
$json .= '"@type":"koral:doc",';
$json .= '"type":"type:' . $self->type . '",';
$json .= '"match":"match:' . $self->match . '",';
$json .= '"key":"' . $self->key . '",';
$json .= '"value":' . $self->quote($self->value);
# Set at the end, when all comments are done
$json .= $self->_commentparam_to_string;
return $json . '}';
};
1;