#------------------------------------------------------------
# Copyright (C) 2006 RoyaltyShare, Inc.   All Rights Reserved
# $Id$
#------------------------------------------------------------
package RPS::Publisher::StatementType;

use strict;
use warnings;
use Carp;

use lib '/app/tools/common/lib';
use Common::Assert;


use lib '/app/tools/rps/lib';
use RPS::DB::Item::StatementType;
use Common::FormObject;


use base 'Common::FormObject';

sub _init
{
	my ($self, %args) = @_;

	$self->SUPER::_init(%args);

	if ($args{_dbItem})
	{
		return $self->_initFromDBItem($args{_dbItem});
	}
	elsif ($args{statementTypeID})
	{
		return $self->_initFromDB($args{statementTypeID});
	}
	else
	{
		return $self->_initWithDefaults();
	}
}


sub _initFromDB
{
	my ($self, $id) = @_;

	my $dbItem = RPS::DB::Item::StatementType->Lookup(statement_type_id => $id);
	return $self->_initFromDBItem($dbItem);
}


sub _initFromDBItem
{
	my ($self, $dbItem) = @_;

	$self->{StatementTypeID} =  Common::FormObject::Scalar->new(value => $dbItem->statement_type_id, readOnly => 1);
	$self->{Name} =         Common::FormObject::Scalar::String->new(value => $dbItem->name);
	$self->{Description} =  Common::FormObject::Scalar::String->new(value => $dbItem->description);

	return $self;
}


sub _initWithDefaults
{
	my ($self) = @_;

	$self->{StatementTypeID} =  Common::FormObject::Scalar->new(readOnly => 1);
	$self->{Name} =         Common::FormObject::Scalar::String->new();
	$self->{Description} =  Common::FormObject::Scalar::String->new();

	return $self;
}



###
1;#
###

