of hats and islandora
play

Of Hats and Islandora T h e T u q u e S t o r y 1 Who is this - PowerPoint PPT Presentation

Of Hats and Islandora T h e T u q u e S t o r y 1 Who is this guy? Jonathan Green Chief Technology Officer at jonathan@discoverygarden.ca twitter: @jonawesomegreen slides: http://bit.ly/1atrzte 2 3 Overview 4 Links


  1. Of Hats and Islandora T h e T u q u e S t o r y 1

  2. Who is this guy? Jonathan Green Chief Technology Officer at jonathan@discoverygarden.ca twitter: @jonawesomegreen slides: http://bit.ly/1atrzte 2

  3. 3

  4. Overview 4

  5. Links • http://jenkins.discoverygarden.ca • http://github.com/Islandora/tuque • http://bit.ly/152F7Fl 5

  6. What is Tuque? 6

  7. 7

  8. // Get the Tuque object $tuque = islandora_get_tuque_connection(); // Construct a new Fedora Object (but don't ingest it) $object = $tuque ->repository->constructObject("jons:amazingobject"); // Set some properties $object ->label = "An amazing demo object."; $object ->owner = "Jonathan Green"; // Create a new datastream. DSID: AWESOME $datastream = $object ->constructDatastream("AWESOME", "M"); $datastream ->label = 'Cool demo datastream'; $datastream ->mimetype = 'image/jpeg'; $datastream ->setContentFromUrl('http://bit.ly/15walXA'); // Ingest the datastream $object ->ingestDatastream( $datastream ); // Ingest the Object $tuque ->repository->ingestObject( $object ); 8

  9. // Load an existing object $object = islandora_object_load('jons:amazingobject'); // Change some properties $object ->label = 'This is a new label'; // Test is a datastream exists if ( isset ( $object ['DSID'])) { // the datastream exists } // Access datastreams using array notation $object ['AWESOME']->label = 'Change datastream label'; // Iterate over datastreams foreach ( $object as $datastream ) { echo $datastream ->id; } // Add and remove relationships $object ->relationships->remove(FEDORA_MODEL_URI, 'hasModel', 'islandora:collectionCModel'); $object ->relationships->add(FEDORA_MODEL_URI, 'hasModel', 'islandora:imageCModel'); 9

  10. 10

  11. • 12 Contributors • 180 Commits • 23,155 Lines Added • 12,896 Lines Deleted 11

  12. 12

  13. 13

  14. 14

  15. 15

  16. Fedora Futures! http://fcrepo.org/ 16

  17. 17

  18. 18

  19. • abstract classes • /implementations • /fedora3 • /fedora4 • /tests • abstract test classes • /implementations • /fedora3 • /fedora4 19

  20. Old Class Structure class IslandoraFedoraRepository extends FedoraRepository {} class IslandoraFedoraObject extends FedoraObject {} $repository = new IslandoraFedoraRepository(...) New Decorator Structure abstract class AbstractRepository extends MagicProperty {} class RepositoryDecorator extends AbstractRepository {} class IslandoraRepositoryDecorator extends RepositoryDecorator {} $general_repo = Tuque::GetRepository('fedora4'); $repository = new IslandoraRepositoryDecorator( $general_repo ); $repository = new CachingRepositoryDecorator( $repository ); 20

  21. 21

  22. slides: http://bit.ly/1atrzte 22

Recommend


More recommend