/usr/local/CPAN/Audio-DB/Audio/DB/Factory.pm


package Audio::DB::Factory;

use strict 'vars';
use Carp 'croak';
use vars '@ISA';

use Audio::DB::Util::Rearrange;

# Objects can either be created with a pre-fetched jasj reference
# or with an object id (like an album id).

sub new {
  my ($self,@p) = @_;
  my ($class,$data) = rearrange([qw/CLASS DATA/],@p);
  
  # Yuck - I need to transform the class (which is really a table name) into
  # a package name.  Stupidity reins supreme
  # THIS MIGHT BE DEPRECATED NOW BUT LEAVE IN PLACE SO THAT PEOPLE
  # can call the Factory with artist or artists.

  $class =~ s/s$//;
  my $package = "Audio::DB::DataTypes::" . ucfirst $class;

  my $this = bless {},$package;
  foreach (keys %$data) {
    $this->{$_} = $data->{$_}
  }
  return $this;
}


1;