package RadioMobile::Config;
use strict;
use warnings;
use Class::Container;
use Params::Validate qw(:types);
use base qw(Class::Container);
use RadioMobile::Config::StyleNetworksProperties;
use RadioMobile::Config::MapFileParser;
use RadioMobile::Config::StyleNetworksPropertiesParser;
use RadioMobile::Config::Pictures;
use RadioMobile::Config::LandHeightParser;
our $VERSION = '0.10';
__PACKAGE__->valid_params(
stylenetworksproperties => { isa =>
'RadioMobile::Config::StyleNetworksProperties'},
pictures => { isa => 'RadioMobile::Config::Pictures'},
landheight => {type => SCALAR,
default => 'C:\Program Files (x86)\Radio Mobile\landheight.dat'},
mapfilepath => {type => SCALAR,
default => ''},
);
__PACKAGE__->contained_objects(
stylenetworksproperties => 'RadioMobile::Config::StyleNetworksProperties',
pictures => 'RadioMobile::Config::Pictures',
);
use Class::MethodMaker [ scalar => [qw/stylenetworksproperties mapfilepath
pictures landheight/] ];
sub new {
my $package = shift;
my $s = $package->SUPER::new(@_);
return $s;
}
sub parse_mapfilepath {
my $s = shift;
my $p = new RadioMobile::Config::MapFileParser(
bfile => $s->container->bfile,
config => $s
);
$p->parse;
}
sub write_mapfilepath {
my $s = shift;
my $p = new RadioMobile::Config::MapFileParser(
bfile => $s->container->bfile,
config => $s
);
$p->write;
}
sub parse_stylenetworks {
my $s = shift;
my $p = new RadioMobile::Config::StyleNetworksPropertiesParser(
bfile => $s->container->bfile,
config => $s
);
$p->parse;
}
sub write_stylenetworks {
my $s = shift;
my $p = new RadioMobile::Config::StyleNetworksPropertiesParser(
bfile => $s->container->bfile,
config => $s
);
$p->write;
}
sub parse_landheight {
my $s = shift;
my $p = new RadioMobile::Config::LandHeightParser(
bfile => $s->container->bfile,
config => $s
);
$p->parse;
}
sub write_landheight {
my $s = shift;
my $p = new RadioMobile::Config::LandHeightParser(
bfile => $s->container->bfile,
config => $s
);
$p->write;
}
sub dump {
my $s = shift;
return Data::Dumper::Dumper($s) unless (@_);
my $method = shift;
my $ret = '';
foreach (0..$s->rowsCount-1) {
my @row = $s->rows->at($_)->list;
my @func = map {$_->$method} @row;
$ret .= '| ' . join(' | ',@func) . " |\n";
}
return $ret;
}
1;