You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
KasmVNC/unix/KasmVNC/DataClumpValidator.pm

49 lines
854 B
Perl

package KasmVNC::DataClumpValidator;
use strict;
use warnings;
use v5.10;
use Data::Dumper;
sub new {
my ($class, $args) = @_;
my $self = bless {
}, $class;
}
sub validate {
my $self = shift;
$self->{cliOption} = shift;
if ($self->isDataClump() && !$self->isWhole()) {
$self->{cliOption}->addErrorMessage($self->errorMessage());
}
}
# private
sub isWhole {
my $self = shift;
my $numberOfValues = scalar $self->{cliOption}->configValues();
return 1 if $numberOfValues == 0;
scalar @{ $self->{cliOption}->{configKeys} } == $numberOfValues;
}
sub isDataClump {
my $self = shift;
scalar(@{ $self->{cliOption}->{configKeys} }) > 1;
}
sub errorMessage {
my $self = shift;
my $configKeys = join ", ", @{ $self->{cliOption}->configKeyNames() };
"$configKeys: either all keys or none must be present";
}
1;