#------------------------------------------------------------
# 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;    #
###

