Jump to content

API:EPrints/DataObj/EPM: Difference between revisions

From EPrints Documentation
No edit summary
Pod2wiki (talk | contribs)
No edit summary
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<!-- Pod2Wiki=_preamble_  
<!-- Pod2Wiki=_preamble_  
This page has been automatically generated from the EPrints 3.2 source. Any wiki changes made between the 'Pod2Wiki=*' and 'Edit below this comment' comments will be lost.
This page has been automatically generated from the EPrints 3.4 source. Any wiki changes made between the 'Pod2Wiki=*' and 'Edit below this comment' comments will be lost.
  -->{{API}}{{Pod2Wiki}}{{API:Source|file=EPrints/DataObj/EPM.pm|package_name=EPrints::DataObj::EPM}}[[Category:API|EPM]][[Category:API:EPrints/DataObj|EPM]][[Category:API:EPrints/DataObj/EPM|EPM]]<div><!-- Edit below this comment -->
  -->{{API}}{{Pod2Wiki}}{{API:Source|file=EPrints/DataObj/EPM.pm|package_name=EPrints::DataObj::EPM}}[[Category:API|EPM]][[Category:API:EPrints/DataObj|EPM]]<div><!-- Edit below this comment -->




<!-- Pod2Wiki=_private_ --><!-- Pod2Wiki=head_name -->
<!-- Pod2Wiki=_private_ --><!-- Pod2Wiki=head_name -->
==NAME==
==NAME==
'''EPrints::DataObj::EPM''' - Class representing an EPrints Package
'''EPrints::DataObj::EPM''' - An EPrints Package Manager (EPM) package.


<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
Line 17: Line 17:
<!-- Pod2Wiki=head_description -->
<!-- Pod2Wiki=head_description -->
==DESCRIPTION==
==DESCRIPTION==
This class represents an EPrint Package Manager (EPM) package that  can be stored in XML format as a .epm file or are hosted on EPM  repositories such as http://bazaar.eprints.org.
The EPM data object is now hosted in the bazaar ingredient found at:
ingredients/bazaar/plugins/EPrints/DataObj/EPM.pm
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<!-- Edit below this comment -->
<!-- Pod2Wiki= -->
</div>
<!-- Pod2Wiki=head_core_metadata_fields -->
==CORE METADATA FIELDS==
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<!-- Edit below this comment -->
<!-- Pod2Wiki= -->
</div>
<!-- Pod2Wiki=item_epmid -->
===epmid (id)===
The text ID of the EPM package
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<!-- Edit below this comment -->
<!-- Pod2Wiki= -->
</div>
<!-- Pod2Wiki=item_eprintid -->
===eprintid (int)===
The ID number of the EPrint record from the EPM repository.
E.g. http://bazaar.eprints.org/.
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<!-- Edit below this comment -->
<!-- Pod2Wiki= -->
</div>
<!-- Pod2Wiki=item_uri -->
===uri (url)===
The URI of the EPM package from the EPM repository it is hosted.
E.g. http://bazaar.eprints.org/id/epm/reports
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<!-- Edit below this comment -->
<!-- Pod2Wiki= -->
</div>
<!-- Pod2Wiki=item_version -->
===version (text)===
The version (e.g. 1.0.0) of the EPM package.
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<!-- Edit below this comment -->
<!-- Pod2Wiki= -->
</div>
<!-- Pod2Wiki=item_controller -->
===controller (text)===
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<!-- Edit below this comment -->
<!-- Pod2Wiki= -->
</div>
<!-- Pod2Wiki=item_creators -->
===creators (compound, multiple)===
Creators of the EPM package including both their full name and email  address.
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<!-- Edit below this comment -->
<!-- Pod2Wiki= -->
</div>
<!-- Pod2Wiki=item_datestamp -->
===datestamp (time)===
The date and time this version of this EPM package was published.
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<!-- Edit below this comment -->
<!-- Pod2Wiki= -->
</div>
<!-- Pod2Wiki=item_title -->
===title (longtext)===
The title of this EPM package.
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<!-- Edit below this comment -->
<!-- Pod2Wiki= -->
</div>
<!-- Pod2Wiki=item_description -->
===description (longtext)===
The description of this EPM package and its purpose.
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<span style='display:none'>User Comments</span>
Line 24: Line 149:
<!-- Pod2Wiki= -->
<!-- Pod2Wiki= -->
</div>
</div>
<!-- Pod2Wiki=head_system_metadata -->
<!-- Pod2Wiki=item_requirements -->
==SYSTEM METADATA==
===requirements (longtext)===
 
A description of the requirements for this EPM package.
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<!-- Edit below this comment -->
 
 
<!-- Pod2Wiki= -->
</div>
<!-- Pod2Wiki=item_home_page -->
===home_page (url)===
 
A URL for the home page of the EPM package. Maybe a page including  documentation on how to use the EPM package.
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<!-- Edit below this comment -->
 
 
<!-- Pod2Wiki= -->
</div>
<!-- Pod2Wiki=item_icon -->
===icon (url)===
 
A URL for the icon for the EPM package.
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<!-- Edit below this comment -->
 
 
<!-- Pod2Wiki= -->
</div>
<!-- Pod2Wiki=head_references_and_related_objects -->
==REFERENCES AND RELATED OBJECTS==
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<!-- Edit below this comment -->
 
 
<!-- Pod2Wiki= -->
</div>
<!-- Pod2Wiki=item_documents -->
===documents (subobject, multiple)===
 
The documents for this EPM package. Effectively a manifest of files required to install the EPM om a repository.
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<!-- Edit below this comment -->
 
 
<!-- Pod2Wiki= -->
</div>
<!-- Pod2Wiki=head_instance_variables -->
==INSTANCE VARIABLES==
See [[API:EPrints/DataObj#INSTANCE_VARIABLES|EPrints::DataObj]].
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<span style='display:none'>User Comments</span>
Line 35: Line 219:
<!-- Pod2Wiki=head_methods -->
<!-- Pod2Wiki=head_methods -->
==METHODS==
==METHODS==
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<!-- Edit below this comment -->
<!-- Pod2Wiki= -->
</div>
<!-- Pod2Wiki=head_constructor_methods -->
===Constructor Methods===
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<!-- Edit below this comment -->
<!-- Pod2Wiki= -->
</div>
<!-- Pod2Wiki=item_new -->
====new====
$epm = EPrints::DataObj::EPM-&gt;new( $repo, $id )
Returns a new object representing the installed EPM package <tt>$id</tt>.
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<!-- Edit below this comment -->
<!-- Pod2Wiki= -->
</div>
<!-- Pod2Wiki=item_new_from_data -->
====new_from_data====
$epm = EPrints::DataObj::EPM-&gt;new_from_data( $repo, $epdata, $dataset )
Returns a new object representing the EPM package based on the  <tt>$epdata</tt> and <tt>$dataset</tt>.
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<!-- Edit below this comment -->
<!-- Pod2Wiki= -->
</div>
<!-- Pod2Wiki=item_new_from_data -->
====new_from_data====
$epm = EPrints::DataObj::EPM-&gt;new_from_data( $repo, $xml )
Returns a new object representing the EPM package based on the  <tt>$xml</tt> provided.
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<!-- Edit below this comment -->
<!-- Pod2Wiki= -->
</div>
<!-- Pod2Wiki=item_new_from_data -->
====new_from_data====
$epm = EPrints::DataObj::EPM-&gt;new_from_data( $repo, $fh )
Returns a new object representing the EPM package based on the XML  from the file handle <tt>$fh</tt> provided.
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<!-- Edit below this comment -->
<!-- Pod2Wiki= -->
</div>
<!-- Pod2Wiki=item_new_from_manifest -->
====new_from_manifest====
$epm = EPrint::DataObj::EPM-&gt;new_from_manifest( $repo, $epdata, [ @manifest ] )
Makes and returns a new EPM object based on the <tt>$epdata</tt> and a  manifest of installable files.
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<!-- Edit below this comment -->
<!-- Pod2Wiki= -->
</div>
<!-- Pod2Wiki=head_class_methods -->
===Class Methods===
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<span style='display:none'>User Comments</span>
Line 43: Line 310:
</div>
</div>
<!-- Pod2Wiki=item_get_system_field_info -->
<!-- Pod2Wiki=item_get_system_field_info -->
===get_system_field_info===
====get_system_field_info====


  $metadata = EPrints::DataObj::EPM-&gt;get_system_field_info
  $metadata = EPrints::DataObj::EPM-&gt;get_system_field_info
Return an array describing the system metadata of the EPrint dataset.
Returns an array describing the system metadata of the epm dataset.


<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
Line 55: Line 322:
<!-- Pod2Wiki= -->
<!-- Pod2Wiki= -->
</div>
</div>
<!-- Pod2Wiki=item_map -->
<!-- Pod2Wiki=item_get_dataset_id -->
===map===
====get_dataset_id====
 
$dataset = EPrints::DataObj::EPM-&gt;get_dataset_id
Returns the ID of the [[API:EPrints/DataSet|EPrints::DataSet]] object to which this record belongs.
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<!-- Edit below this comment -->


EPrints::DataObj::EPM-&gt;map( $repo, sub { ... }, $ctx )
Apply a function over all installed EPMs.


  sub {
<!-- Pod2Wiki= -->
    my( $repo, $dataset, $epm [, $ctx ] ) = @_;
</div>
  }
<!-- Pod2Wiki=item_render_controller -->
 
====render_controller====
This loads the EPM index files only.
 
$xhtml = EPrints::DataObj::EPM::render_controller( $repo, $field, $value, under, undef, $epm )
Returns and XHTML DOM object rendering for the action link of the EPM using the screen plugin with name supplied by <tt>$value</tt>.


<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
Line 74: Line 348:
<!-- Pod2Wiki= -->
<!-- Pod2Wiki= -->
</div>
</div>
<!-- Pod2Wiki=item_new -->
<!-- Pod2Wiki=item_render_icon -->
===new===
====render_icon====


  $epm = EPrints::DataObj::EPM-&gt;new( $repo, $id )
  $xhtml = EPrints::DataObj::EPM::render_icon( $repo, $field, $value, under, undef, $epm )
Returns a new object representing the installed package $id.
Returns and XHTML DOM object rendering for the icon of the EPM using  the image with the filename supplied by <tt>$value</tt>.


<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
Line 87: Line 361:
<!-- Pod2Wiki= -->
<!-- Pod2Wiki= -->
</div>
</div>
<!-- Pod2Wiki=item_new_from_manifest -->
<!-- Pod2Wiki=item_map -->
===new_from_manifest===
====map====
 
EPrints::DataObj::EPM-&gt;map( $repo, $f, $ctx )
Apply a function <tt>$f</tt> over all installed EPMs with and only context <tt>$ctx</tt>, which is not currently implemented.
 
  sub {
    my( $repo, $dataset, $epm, [ $ctx ] ) = @_;
  }
 
This loads the EPM index files only.
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<!-- Edit below this comment -->


$epm = EPrint::DataObj::EPM-&gt;new_from_manifest( $repo, $epdata [, @manifest ] )
Makes and returns a new EPM object based on a manifest of installable files.


<!-- Pod2Wiki= -->
</div>
<!-- Pod2Wiki=head_object_methods -->
===Object Methods===
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<span style='display:none'>User Comments</span>
Line 101: Line 390:
</div>
</div>
<!-- Pod2Wiki=item_commit -->
<!-- Pod2Wiki=item_commit -->
===commit===
====commit====


  $epm-&gt;commit
  $epm-&gt;commit
Line 114: Line 403:
</div>
</div>
<!-- Pod2Wiki=item_rebuild -->
<!-- Pod2Wiki=item_rebuild -->
===rebuild===
====rebuild====


  $epm-&gt;rebuild
  $epm-&gt;rebuild
Line 127: Line 416:
</div>
</div>
<!-- Pod2Wiki=item_version -->
<!-- Pod2Wiki=item_version -->
===version===
====version====


  $v = $epm-&gt;version
  $v = $epm-&gt;version
Line 140: Line 429:
</div>
</div>
<!-- Pod2Wiki=item_is_enabled -->
<!-- Pod2Wiki=item_is_enabled -->
===is_enabled===
====is_enabled====


  $bool = $epm-&gt;is_enabled
  $bool = $epm-&gt;is_enabled
Returns true if the $epm is enabled for the current repository.
Returns <tt>true</tt> if the EPM is enabled for the current repository.


<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
Line 153: Line 442:
</div>
</div>
<!-- Pod2Wiki=item_repositories -->
<!-- Pod2Wiki=item_repositories -->
===repositories===
====repositories====


  @repoids = $epm-&gt;repositories
  @repoids = $epm-&gt;repositories
Returns a list of repository ids this $epm is enabled in.
Returns a list of repository IDs in which this EPM is enabled.


<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
Line 166: Line 455:
</div>
</div>
<!-- Pod2Wiki=item_package_filename -->
<!-- Pod2Wiki=item_package_filename -->
===package_filename===
====package_filename====


  $filename = $epm-&gt;package_filename()
  $filename = $epm-&gt;package_filename
Returns the complete package filename.
Returns the complete package filename.


Line 179: Line 468:
</div>
</div>
<!-- Pod2Wiki=item_epm_dir -->
<!-- Pod2Wiki=item_epm_dir -->
===epm_dir===
====epm_dir====


  $dir = $epm-&gt;epm_dir
  $dir = $epm-&gt;epm_dir
Path to the epm directory for this $epm.
Path to the epm directory for this EPM.


<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
Line 192: Line 481:
</div>
</div>
<!-- Pod2Wiki=item_installed_files -->
<!-- Pod2Wiki=item_installed_files -->
===installed_files===
====installed_files====


  @files = $epm-&gt;installed_files()
  @files = $epm-&gt;installed_files
Returns a list of installed files as [[API:EPrints/DataObj/File|EPrints::DataObj::File]].
Returns a list of installed files as [[API:EPrints/DataObj/File|EPrints::DataObj::File]].


Line 205: Line 494:
</div>
</div>
<!-- Pod2Wiki=item_repository_files -->
<!-- Pod2Wiki=item_repository_files -->
===repository_files===
====repository_files====


  @files = $epm-&gt;repository_files()
  @files = $epm-&gt;repository_files
Returns the list of configuration files used to enable/configure an $epm.
Returns the list of configuration files used to enable/configure this EPM.


<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
Line 218: Line 507:
</div>
</div>
<!-- Pod2Wiki=item_control_screen -->
<!-- Pod2Wiki=item_control_screen -->
===control_screen===
====control_screen====


  $screen = $epm-&gt;control_screen( %params )
  $screen = $epm-&gt;control_screen( %params )
Returns the control screen for this $epm. %params are passed to the plugin constructor.
Returns the control screen for this EPM. <tt>%params</tt> are passed to the plugin constructor.


<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
Line 231: Line 520:
</div>
</div>
<!-- Pod2Wiki=item_serialise -->
<!-- Pod2Wiki=item_serialise -->
===serialise===
====serialise====


  $epm-&gt;serialise( $fh, [ FILES ] )
  $epm-&gt;serialise( $fh, [ $files ] )
Serialises this EPM to the open file handle $fh. If FILES is true file contents are included.
Serialises this EPM to the open file handle <tt>$fh</tt>. If <tt>$files</tt> is true file contents are included.
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<!-- Edit below this comment -->
 
 
<!-- Pod2Wiki= -->
</div>
<!-- Pod2Wiki=item_url_stem -->
====url_stem====
 
$url_stem = $epm-&gt;url_stem
Returns the URL stem for this EPM. Always just an empty string.
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<!-- Edit below this comment -->
 
 
<!-- Pod2Wiki= -->
</div>
<!-- Pod2Wiki=item_html_phrase -->
====html_phrase====
 
$xhtml_phrase = $epm-&gt;html_phrase( $phraseid, [ @pins ] )
Returns and XHTML DOM oject of the HTML phrase for and EPM with the <tt>$phraseid</tt> using the <tt>@pins</tt> provided if required.


<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
Line 244: Line 559:
</div>
</div>
<!-- Pod2Wiki=item_install -->
<!-- Pod2Wiki=item_install -->
===install===
====install====


  $ok = $epm-&gt;install( HANDLER [, FORCE ] )
  $ok = $epm-&gt;install( $handler, [ $force ] )
Install the EPM into the system. HANDLER is a [[API:EPrints/CLIProcessor|EPrints::CLIProcessor]] or [[API:EPrints/ScreenProcessor|EPrints::ScreenProcessor]], used for reporting errors.
Install the EPM into the system. <tt>$handler</tt> is a [[API:EPrints/CLIProcessor|EPrints::CLIProcessor]] or [[API:EPrints/ScreenProcessor|EPrints::ScreenProcessor]], used for reporting errors. 
 
<tt>$force</tt> ignores checking the hashes of the files to make sure they  have not been changed.
 
Returns boolean dependent on whether install was successful.


<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
Line 257: Line 576:
</div>
</div>
<!-- Pod2Wiki=item_uninstall -->
<!-- Pod2Wiki=item_uninstall -->
===uninstall===
====uninstall====
 
$ok = $epm-&gt;uninstall( $handler, [ $force ] )
Remove the EPM from the system. <tt>$handler</tt> is a  [[API:EPrints/CLIProcessor|EPrints::CLIProcessor]] or [[API:EPrints/ScreenProcessor|EPrints::ScreenProcessor]], used for  reporting errors.
 
<tt>$force</tt> ignores checking the hashes of the files to make sure they have not been changed.


$ok = $epm-&gt;uninstall( HANDLER [, FORCE ] )
Returns boolean dependent on whether uninstall was successful.
Remove the EPM from the system. HANDLER is a [[API:EPrints/CLIProcessor|EPrints::CLIProcessor]] or [[API:EPrints/ScreenProcessor|EPrints::ScreenProcessor]], used for reporting errors.


<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
Line 270: Line 593:
</div>
</div>
<!-- Pod2Wiki=item_disable_unchanged -->
<!-- Pod2Wiki=item_disable_unchanged -->
===disable_unchanged===
====disable_unchanged====
 
$ok = $epm-&gt;disable_unchanged
Remove unchanged files from the repository directory. This allows a  new version of the EPM to be installed/enabled.


  $ok = $epm-&gt;disable_unchanged()
Returns boolean dependent on whether disabling unchanged was successful.
Remove unchanged files from the repository directory. This allows a new version of the EPM to be installed/enabled.


<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
Line 283: Line 608:
</div>
</div>
<!-- Pod2Wiki=item_enable -->
<!-- Pod2Wiki=item_enable -->
===enable===
====enable====


  $ok = $epm-&gt;enable( $handler )
  $ok = $epm-&gt;enable( $handler )
Enables the $epm for the current repository.
Enables the EPM for the current repository using <tt>$handler</tt> to manage messaging for the enabling process.
 
Returns boolean dependent on whether enabling was successful.


<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
Line 295: Line 622:
<!-- Pod2Wiki= -->
<!-- Pod2Wiki= -->
</div>
</div>
<!-- Pod2Wiki=head_utility_methods -->
<!-- Pod2Wiki=item_enable -->
===Utility Methods===
====enable====
 
$ok = $epm-&gt;enable( $handler )
Enables the EPM for the current repository using <tt>$handler</tt> to manage messaging for the disabling process.
 
Returns boolean dependent on whether disabling was successful.
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<span style='display:none'>User Comments</span>
Line 307: Line 640:
====current_counters====
====current_counters====


  $conf = $epm-&gt;current_counters()
  $conf = $epm-&gt;current_counters
Get SQL counters for current data objects.
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<span style='display:none'>User Comments</span>
Line 318: Line 653:
====current_datasets====
====current_datasets====


  $conf = $epm-&gt;current_datasets()
  $conf = $epm-&gt;current_datasets
Get dataset for current data objects.
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<span style='display:none'>User Comments</span>
Line 329: Line 666:
====update_counters====
====update_counters====


  $ok = $epm-&gt;update_counters( $conf )
  $ok = $epm-&gt;update_counters( $before )
Update the SQL counters. Removing any counters listed in <tt>$before</tt>  that are not used any more. (<tt>$before</tt> should be retrieved before  enabling by using [[API:EPrints/DataObj/EPM#current_counters|current_counters]].)
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<span style='display:none'>User Comments</span>
Line 340: Line 679:
====update_datasets====
====update_datasets====


  $ok = $epm-&gt;update_datasets( $conf )
  $ok = $epm-&gt;update_datasets( $before )
Update the datasets following any configuration changes made by the extension on being enabled. $conf should be retrieved before enabling by using [[API:EPrints/DataObj/EPM#current_datasets|current_datasets]].
Update the datasets following any configuration changes made by the extension on being enabled. Removing any datasets listed in <tt>$before</tt> that are not used any more. <tt>$before</tt> should be retrieved before enabling by using [[API:EPrints/DataObj/EPM#current_datasets|current_datasets]].


<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
Line 353: Line 692:
====publish====
====publish====


  $ok = $epm-&gt;publish( $handler, $base_url, %opts )
  $ok = $epm-&gt;publish( $handler, $url, %opts )
Publish this EPM to a remote system using SWORD.
Publish this EPM to a remote system using SWORD, using <tt>$handler</tt> to  manage messaging for the publishing process.


$base_url is the URL of the SWORD endpoint or a page containing a SWORD &lt;link&gt;.
<tt>$url</tt> is the URL of the SWORD endpoint or a page containing a SWORD link.


Options:
Options:


  username - username for Basic auth
username - username for Basic auth
  password - password for Basic auth
password - password for Basic auth
    
    
Returns a boolean dependent on whether the publishing was successful.
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<!-- Edit below this comment -->
<!-- Pod2Wiki= -->
</div>
<!-- Pod2Wiki=item_is_set -->
====is_set====
$ok = $epm-&gt;is_set( $fieldid )
Returns a boolean dependent on whether a value is set for the field  with <tt>$fieldid</tt> for this EPM.
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<!-- Edit below this comment -->
<!-- Pod2Wiki= -->
</div>
<!-- Pod2Wiki=head_utility_methods -->
===Utility Methods===
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<!-- Edit below this comment -->
<!-- Pod2Wiki= -->
</div>
<!-- Pod2Wiki=item_render_controller -->
====render_controller====
$xhtml = EPrints::DataObj::EPM::render_controller( $repo, $field, $value, under, undef, $epm )
Returns and XHTML DOM object rendering for the action link of the EPM using the screen plugin with name supplied by <tt>$value</tt>.
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<!-- Edit below this comment -->
<!-- Pod2Wiki= -->
</div>
<!-- Pod2Wiki=item_render_icon -->
====render_icon====
$xhtml = EPrints::DataObj::EPM::render_icon( $repo, $field, $value, under, undef, $epm )
Returns and XHTML DOM object rendering for the icon of the EPM using the image with the filename supplied by <tt>$value</tt>.
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<!-- Edit below this comment -->
<!-- Pod2Wiki= -->
</div>
<!-- Pod2Wiki=head_see_also -->
==SEE ALSO==
[[API:EPrints/DataObj|EPrints::DataObj]] and [[API:EPrints/DataSet|EPrints::DataSet]]
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<span style='display:none'>User Comments</span>
Line 372: Line 772:
<!-- Pod2Wiki=head_copyright -->
<!-- Pod2Wiki=head_copyright -->
==COPYRIGHT==
==COPYRIGHT==
{{API:Copyright}}
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<span style='display:none'>User Comments</span>

Latest revision as of 01:46, 11 January 2022

Latest Source Code (3.4, 3.3) | Revision Log | Before editing this page please read Pod2Wiki


NAME[edit]

EPrints::DataObj::EPM - An EPrints Package Manager (EPM) package.

User Comments


DESCRIPTION[edit]

This class represents an EPrint Package Manager (EPM) package that can be stored in XML format as a .epm file or are hosted on EPM repositories such as http://bazaar.eprints.org.

The EPM data object is now hosted in the bazaar ingredient found at:

ingredients/bazaar/plugins/EPrints/DataObj/EPM.pm
 

User Comments


CORE METADATA FIELDS[edit]

User Comments


epmid (id)[edit]

The text ID of the EPM package

User Comments


eprintid (int)[edit]

The ID number of the EPrint record from the EPM repository.

E.g. http://bazaar.eprints.org/.

User Comments


uri (url)[edit]

The URI of the EPM package from the EPM repository it is hosted.

E.g. http://bazaar.eprints.org/id/epm/reports

User Comments


version (text)[edit]

The version (e.g. 1.0.0) of the EPM package.

User Comments


controller (text)[edit]

User Comments


creators (compound, multiple)[edit]

Creators of the EPM package including both their full name and email address.

User Comments


datestamp (time)[edit]

The date and time this version of this EPM package was published.

User Comments


title (longtext)[edit]

The title of this EPM package.

User Comments


description (longtext)[edit]

The description of this EPM package and its purpose.

User Comments


requirements (longtext)[edit]

A description of the requirements for this EPM package.

User Comments


home_page (url)[edit]

A URL for the home page of the EPM package. Maybe a page including documentation on how to use the EPM package.

User Comments


icon (url)[edit]

A URL for the icon for the EPM package.

User Comments


REFERENCES AND RELATED OBJECTS[edit]

User Comments


documents (subobject, multiple)[edit]

The documents for this EPM package. Effectively a manifest of files required to install the EPM om a repository.

User Comments


INSTANCE VARIABLES[edit]

See EPrints::DataObj.

User Comments


METHODS[edit]

User Comments


Constructor Methods[edit]

User Comments


new[edit]

$epm = EPrints::DataObj::EPM->new( $repo, $id )

Returns a new object representing the installed EPM package $id.

User Comments


new_from_data[edit]

$epm = EPrints::DataObj::EPM->new_from_data( $repo, $epdata, $dataset )

Returns a new object representing the EPM package based on the $epdata and $dataset.

User Comments


new_from_data[edit]

$epm = EPrints::DataObj::EPM->new_from_data( $repo, $xml )

Returns a new object representing the EPM package based on the $xml provided.

User Comments


new_from_data[edit]

$epm = EPrints::DataObj::EPM->new_from_data( $repo, $fh )

Returns a new object representing the EPM package based on the XML from the file handle $fh provided.

User Comments


new_from_manifest[edit]

$epm = EPrint::DataObj::EPM->new_from_manifest( $repo, $epdata, [ @manifest ] )

Makes and returns a new EPM object based on the $epdata and a manifest of installable files.

User Comments


Class Methods[edit]

User Comments


get_system_field_info[edit]

$metadata = EPrints::DataObj::EPM->get_system_field_info

Returns an array describing the system metadata of the epm dataset.

User Comments


get_dataset_id[edit]

$dataset = EPrints::DataObj::EPM->get_dataset_id

Returns the ID of the EPrints::DataSet object to which this record belongs.

User Comments


render_controller[edit]

$xhtml = EPrints::DataObj::EPM::render_controller( $repo, $field, $value, under, undef, $epm )

Returns and XHTML DOM object rendering for the action link of the EPM using the screen plugin with name supplied by $value.

User Comments


render_icon[edit]

$xhtml = EPrints::DataObj::EPM::render_icon( $repo, $field, $value, under, undef, $epm )

Returns and XHTML DOM object rendering for the icon of the EPM using the image with the filename supplied by $value.

User Comments


map[edit]

EPrints::DataObj::EPM->map( $repo, $f, $ctx )

Apply a function $f over all installed EPMs with and only context $ctx, which is not currently implemented.

 sub {
   my( $repo, $dataset, $epm, [ $ctx ] ) = @_;
 }
 

This loads the EPM index files only.

User Comments


Object Methods[edit]

User Comments


commit[edit]

$epm->commit

Commit any changes to the installed .epm, .epmi files.

User Comments


rebuild[edit]

$epm->rebuild

Reload all of the installed files (regenerating hashes if necessary).

User Comments


version[edit]

$v = $epm->version

Returns a stringified version suitable for string gt/lt matching.

User Comments


is_enabled[edit]

$bool = $epm->is_enabled

Returns true if the EPM is enabled for the current repository.

User Comments


repositories[edit]

@repoids = $epm->repositories

Returns a list of repository IDs in which this EPM is enabled.

User Comments


package_filename[edit]

$filename = $epm->package_filename

Returns the complete package filename.

User Comments


epm_dir[edit]

$dir = $epm->epm_dir

Path to the epm directory for this EPM.

User Comments


installed_files[edit]

@files = $epm->installed_files

Returns a list of installed files as EPrints::DataObj::File.

User Comments


repository_files[edit]

@files = $epm->repository_files

Returns the list of configuration files used to enable/configure this EPM.

User Comments


control_screen[edit]

$screen = $epm->control_screen( %params )

Returns the control screen for this EPM. %params are passed to the plugin constructor.

User Comments


serialise[edit]

$epm->serialise( $fh, [ $files ] )

Serialises this EPM to the open file handle $fh. If $files is true file contents are included.

User Comments


url_stem[edit]

$url_stem = $epm->url_stem

Returns the URL stem for this EPM. Always just an empty string.

User Comments


html_phrase[edit]

$xhtml_phrase = $epm->html_phrase( $phraseid, [ @pins ] )

Returns and XHTML DOM oject of the HTML phrase for and EPM with the $phraseid using the @pins provided if required.

User Comments


install[edit]

$ok = $epm->install( $handler, [ $force ] )

Install the EPM into the system. $handler is a EPrints::CLIProcessor or EPrints::ScreenProcessor, used for reporting errors.

$force ignores checking the hashes of the files to make sure they have not been changed.

Returns boolean dependent on whether install was successful.

User Comments


uninstall[edit]

$ok = $epm->uninstall( $handler, [ $force ] )

Remove the EPM from the system. $handler is a EPrints::CLIProcessor or EPrints::ScreenProcessor, used for reporting errors.

$force ignores checking the hashes of the files to make sure they have not been changed.

Returns boolean dependent on whether uninstall was successful.

User Comments


disable_unchanged[edit]

$ok = $epm->disable_unchanged

Remove unchanged files from the repository directory. This allows a new version of the EPM to be installed/enabled.

Returns boolean dependent on whether disabling unchanged was successful.

User Comments


enable[edit]

$ok = $epm->enable( $handler )

Enables the EPM for the current repository using $handler to manage messaging for the enabling process.

Returns boolean dependent on whether enabling was successful.

User Comments


enable[edit]

$ok = $epm->enable( $handler )

Enables the EPM for the current repository using $handler to manage messaging for the disabling process.

Returns boolean dependent on whether disabling was successful.

User Comments


current_counters[edit]

$conf = $epm->current_counters

Get SQL counters for current data objects.

User Comments


current_datasets[edit]

$conf = $epm->current_datasets

Get dataset for current data objects.

User Comments


update_counters[edit]

$ok = $epm->update_counters( $before )

Update the SQL counters. Removing any counters listed in $before that are not used any more. ($before should be retrieved before enabling by using current_counters.)

User Comments


update_datasets[edit]

$ok = $epm->update_datasets( $before )

Update the datasets following any configuration changes made by the extension on being enabled. Removing any datasets listed in $before that are not used any more. $before should be retrieved before enabling by using current_datasets.

User Comments


publish[edit]

$ok = $epm->publish( $handler, $url, %opts )

Publish this EPM to a remote system using SWORD, using $handler to manage messaging for the publishing process.

$url is the URL of the SWORD endpoint or a page containing a SWORD link.

Options:

username - username for Basic auth
password - password for Basic auth
 

Returns a boolean dependent on whether the publishing was successful.

User Comments


is_set[edit]

$ok = $epm->is_set( $fieldid )

Returns a boolean dependent on whether a value is set for the field with $fieldid for this EPM.

User Comments


Utility Methods[edit]

User Comments


render_controller[edit]

$xhtml = EPrints::DataObj::EPM::render_controller( $repo, $field, $value, under, undef, $epm )

Returns and XHTML DOM object rendering for the action link of the EPM using the screen plugin with name supplied by $value.

User Comments


render_icon[edit]

$xhtml = EPrints::DataObj::EPM::render_icon( $repo, $field, $value, under, undef, $epm )

Returns and XHTML DOM object rendering for the icon of the EPM using the image with the filename supplied by $value.

User Comments


SEE ALSO[edit]

EPrints::DataObj and EPrints::DataSet

User Comments


COPYRIGHT[edit]

© Copyright 2000-2024 University of Southampton.

EPrints 3.4 is supplied by EPrints Services.

http://www.eprints.org/eprints-3.4/

LICENSE[edit]

This file is part of EPrints 3.4 http://www.eprints.org/.

EPrints 3.4 and this file are released under the terms of the GNU Lesser General Public License version 3 as published by the Free Software Foundation unless otherwise stated.

EPrints 3.4 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with EPrints 3.4. If not, see http://www.gnu.org/licenses/.

User Comments