NAME

InterMine::Model::Handler - The SAX handler for reading in a model

SYNOPSIS

use InterMine::Model; # you get the handler for free
use XML::Parser::PerlSAX;

my $handler = new InterMine::Model::Handler( model => $self );
my $parser = XML::Parser::PerlSAX->new( Handler => $handler );

my $source;

if ($source_is_string) {
    $source = { String => $source_arg };
}
else {
    $source = { SystemId => $source_arg };
}

$parser->parse( Source => $source );

DESCRIPTION

This in a class used internally for processing the xml representation of the model that is returned from webservices, and stored as a the model's serialised representation. You will not need to use this class directly.

SEE ALSO

NAME

InterMine::Model - the representation of an InterMine model

SYNOPSIS

use InterMine::Model;

my $model_file = 'flymine/dbmodel/build/model/genomic_model.xml';
my $model = InterMine::Model->new(file => $model_file);
my $gene = $model->make_new(
  Gene => {
      primaryIdentifier => "FBgn0004053",
      secondaryIdentifier => "CG1046",
      symbol              => "zen",
      name                => "zerknullt",
      length              => "3474",
      organism            => {
          shortName => "D. melanogaster",
      }
      ncbiGeneNumber      => 40828,
  });

$gene->getName(); # "zerknullt"

...

DESCRIPTION

The class is the Perl representation of an InterMine data model. The new() method can parse the model file. The get_classdescriptor_by_name() method will return an InterMine::Model::ClassDescriptor object for the class with the given name.

For an example model see: http://trac.flymine.org/browser/trunk/intermine/objectstore/model/testmodel/testmodel_model.xml

FUNCTIONS

new

Title   : new
Usage   : $model = new InterMine::Model(file => $model_file);
            or
          $model = new InterMine::Model(string => $model_string);
Function: return a Model object for the given file
Args    : file - the InterMine model XML file

get_classdescriptor_by_name

Title   : get_classdescriptor_by_name
Usage   : $cd = $model->get_classdescriptor_by_name("Gene");
Function: return the InterMine::Model::ClassDescriptor for the given class or
          undef if the class isn't in the model
Args    : the classname

make_new($class_name, [%attributes|$attributes])

Return an object of the desired class, with the attributes given

my $gene = $model->make_new(Gene => {symbol => "zen", organism => {name => 'D. melanogaster}});

say $gene->get_symbol             # "zen"
say $gene->get_organism->get_name # "D. melanogaster"

get_all_classdescriptors

Title   : get_all_classdescriptors
Usage   : @cds = $model->get_all_classdescriptors();
Function: return all the InterMine::Model::ClassDescriptor objects for this
          model
Args    : none

get_referenced_classdescriptor

Usage    : my $cd = $model->get_referenced_classdescriptor($ref);
Function : get the class descriptor at the other end of a reference
Args     : The reference

find_classes_declaring_field( $name )

Usage    : my @classes = $model->find_classes_declaring_field($str);
Function : get the class descriptors that declare fields of a certain name  
Args     : The field's name

package_name

Title   : package_name
Usage   : $package_name = $model->package_name();
Function: return the package name derived from the name space
          eg. "org.intermine.model"
Args    : none

model_name

Title   : model_name
Usage   : $model_name = $model->model_name();
Function: return the model name from the model file eg. "testmodel"
Args    : none

AUTHOR

FlyMine <support@flymine.org>

BUGS

Please report any bugs or feature requests to support@flymine.org.

SUPPORT

You can find documentation for this module with the perldoc command.

perldoc InterMine::Model

You can also look for information at:

COPYRIGHT & LICENSE

Copyright 2006,2007,2008,2009, 2010, 2011 FlyMine, all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.