InterMine::Model - the representation of an InterMine model
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" ...
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, and the make_new() method will return an instantiated object of the given class.
new()
get_classdescriptor_by_name()
make_new()
For an example model see: http://trac.flymine.org/browser/trunk/intermine/objectstore/model/testmodel/testmodel_model.xml
Standard constructor - accepts key/value pairs. Possible options are:
source: the source of the xml
can be a ScalarRef, filehandle, filename, or string (or anything that overloads "") (tested in that order)
file: The file to load the model from
[deprecated - use source instead]
string: A string containing the xml to load the model from
origin: Where this model comes from
usually a mine name - optional
Get the InterMine::Model::ClassDescriptor (meta-class) with the given name.
my $cd = $model->get_classdescriptor_by_name("Gene");
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->getSymbol # "zen" say $gene->getOrganism->getName # "D. melanogaster"
Return all the InterMine::Model::ClassDescriptors for this model
my @cds = $model->get_all_classdescriptors();
Get the class descriptor at the other end of a reference. The main use for this method is internal, during the construction of a model
my $cd = $model->get_referenced_classdescriptor($ref);
Get the class descriptors that declare fields of a certain name
my @classes = $model->find_classes_declaring_field($str);
Return the package name derived from the original java name space, eg. org.intermine.model
my $java_package = $model->package_name;
Return the name of this model. Conceptually, this maps to the enclosing package for the generated classes.
my $model_name = $model->model_name();
Returns a string containing an XML representation of the model.
Always returns undef. This can be overriden by subclasses to provide lazy fetching capabilities for items, from a web-service or directly from a database.
FlyMine <support@flymine.org>
<support@flymine.org>
Please report any bugs or feature requests to support@flymine.org.
support@flymine.org
You can find documentation for this module with the perldoc command.
perldoc InterMine::Model
You can also look for information at:
FlyMine
http://www.flymine.org
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.
To install InterMine::Model, copy and paste the appropriate command in to your terminal.
cpanm
cpanm InterMine::Model
CPAN shell
perl -MCPAN -e shell install InterMine::Model
For more information on module installation, please visit the detailed CPAN module installation guide.