#!/usr/bin/perl
package RVL::ParamHandler;
# WebSite: http://www.rvglobalsoft.com
# Unauthorized copying is strictly forbidden and may result in severe legal action.
# Copyright (c) 2013 RV Global Soft Co.,Ltd. All rights reserved.
#
# =====YOU MUST KEEP THIS COPYRIGHTS NOTICE INTACT AND CAN NOT BE REMOVE =======
# Copyright (c) 2013 RV Global Soft Co.,Ltd. All rights reserved.
# This Agreement is a legal contract, which specifies the terms of the license
# and warranty limitation between you and RV Global Soft Co.,Ltd. and RV2Factor Product for RV Global Soft.
# You should carefully read the following terms and conditions before
# installing or using this software. Unless you have a different license
# agreement obtained from RV Global Soft Co.,Ltd., installation or use of this software
# indicates your acceptance of the license and warranty limitation terms
# contained in this Agreement. If you do not agree to the terms of this
# Agreement, promptly delete and destroy all copies of the Software.
#
# ===== Grant of License =======
# The Software may only be installed and used on a single host machine.
#
# ===== Disclaimer of Warranty =======
# THIS SOFTWARE AND ACCOMPANYING DOCUMENTATION ARE PROVIDED "AS IS" AND
# WITHOUT WARRANTIES AS TO PERFORMANCE OF MERCHANTABILITY OR ANY OTHER
# WARRANTIES WHETHER EXPRESSED OR IMPLIED. BECAUSE OF THE VARIOUS HARDWARE
# AND SOFTWARE ENVIRONMENTS INTO WHICH RV SITE BUILDER MAY BE USED, NO WARRANTY OF
# FITNESS FOR A PARTICULAR PURPOSE IS OFFERED. THE USER MUST ASSUME THE
# ENTIRE RISK OF USING THIS PROGRAM. ANY LIABILITY OF RV GLOBAL SOFT CO.,LTD. WILL BE
# LIMITED EXCLUSIVELY TO PRODUCT REPLACEMENT OR REFUND OF PURCHASE PRICE.
# IN NO CASE SHALL RV GLOBAL SOFT CO.,LTD. BE LIABLE FOR ANY INCIDENTAL, SPECIAL OR
# CONSEQUENTIAL DAMAGES OR LOSS, INCLUDING, WITHOUT LIMITATION, LOST PROFITS
# OR THE INABILITY TO USE EQUIPMENT OR ACCESS DATA, WHETHER SUCH DAMAGES ARE
# BASED UPON A BREACH OF EXPRESS OR IMPLIED WARRANTIES, BREACH OF CONTRACT,
# NEGLIGENCE, STRICT TORT, OR ANY OTHER LEGAL THEORY. THIS IS TRUE EVEN IF
# RV GLOBAL SOFT CO.,LTD. IS ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. IN NO CASE WILL
# RV GLOBAL SOFT CO.,LTD.'S LIABILITY EXCEED THE AMOUNT OF THE LICENSE FEE ACTUALLY PAID
# BY LICENSEE TO RV GLOBAL SOFT CO.,LTD.
# ===============================
=head1 NAME
RVL::ParamHandler - Handling file parsing.
=head1 SYNOPSIS
=head1 DESCRIPTION
=head1 METHODS
=cut
use IO::Interactive qw(is_interactive interactive busy);
use Digest::MD5 qw(md5 md5_hex md5_base64);
use Class::Std::Utils;
{
# class attribute
my ($source);
sub new {
my ($class, $opt, $data) = @_;
my %hash;
my ($this) = bless(\%hash, $class);
if (defined $opt->{source}) {
$hash{source} = $opt->{source};
}
if (defined $data->{data}) {
$hash{data} = $data->{data};
}
return $this;
}
sub getSource {
return $source;
}
=head2 singleton()
Returns a singleton Request instance.
=cut
sub singleton {
my ($class) = __PACKAGE__;
my ($source) = shift;
my ($data) = shift;
my ($signature) = $source;
if (!defined $RVL::INSTANCE{$class}{$signature}) {
my ($ext4) = substr $source, -4;
my ($ext3) = substr $source, -3;
my ($ext2) = substr $source, -2;
my ($ref);
if (lc($ext4) eq 'yaml') {
$ref = RVL::ParamHandler::YAML->new({source => $source}, {data => $data});
} elsif (lc($ext3) eq 'ini') {
$ref = RVL::ParamHandler::Ini->new({source => $source}, {data => $data});
} elsif (lc($ext3) eq 'xml') {
$ref = RVL::ParamHandler::Xml->new({source => $source}, {data => $data});
} elsif (lc($ext2) eq 'pl') {
$ref = RVL::ParamHandler::Pl->new({source => $source}, {data => $data});
}
$RVL::INSTANCE{$class}{$signature} = $ref;
}
return $RVL::INSTANCE{$class}{$signature};
}
sub readFile { }
sub write { }
}
=head1
RVL::ParamHandler::YAML - YAML Handler
=cut
package RVL::ParamHandler::YAML;
use base qw(RVL::ParamHandler);
use YAML::Syck;
use Class::Std::Utils;
{
sub read {
my ($this) = @_;
my $dataLoad = {};
return (-f $this->{source}) ? LoadFile($this->{source}) : $dataLoad;
}
sub write {
my ($this) = @_;
my ($res) = 0;
if (RVL::String::is_hash($this->{data}) == 1) {
if (open(my $FILEHANDLE, '>', $this->{source})) {
close($FILEHANDLE);
$res = (DumpFile($this->{source}, $this->{data})) ? 1 : 0;
}
}
return $res;
}
}
=head1
RVL::ParamHandler::YAML - INI Handler
=cut
package RVL::ParamHandler::Ini;
use base qw(RVL::ParamHandler);
use Class::Std::Utils;
{
sub read {
my ($this) = @_;
return RVL::File::parse_ini_file($this->{source});
}
sub write {
}
}
=head1
RVL::ParamHandler::YAML - XML Handler
=cut
package RVL::ParamHandler::Xml;
use base qw(RVL::ParamHandler);
use Class::Std::Utils;
{
sub read {
}
sub write {
}
}
=head1
RVL::ParamHandler::YAML - PERL Config Handler
=cut
package RVL::ParamHandler::Pl;
use base qw(RVL::ParamHandler);
use Class::Std::Utils;
{
sub read {
}
sub write {
}
}
1;
Copyright 2K16 - 2K18 Indonesian Hacker Rulez