Differences between revisions 6 and 7
Revision 6 as of 2010-06-08 09:39:35
Size: 4786
Editor: jrg
Comment:
Revision 7 as of 2010-06-08 09:54:31
Size: 5015
Editor: jrg
Comment:
Deletions are marked like this. Additions are marked like this.
Line 60: Line 60:
 * ( md - md ) Additional methods (10 to 40% of the existing amount) TOTAL: 47 md

Probably several of the small ones can be done in one go, so development time may become shorter. On the other hand, once we start coding, me may discover that more methods are needed. (Maybe 10 to 40 percent more methods)

TOTAL WORST-CASE: 52 - 66 md (including 10 - 40 % extra)

API Estimates - Server, Client, Ingest

Server

Client

For summa integration and OAI-PMH:

  • (2 md B ) framework code
  • (3 md C) makeBundleOfObjectsChangedSince - get list of PIDs from DOMS Server, then call it to get the bundle (uncertainty: get the view name how?)
  • (3 md C) getObjectViewForMainObject - call DOMS Server to get the bundle (uncertainty: get the view name how?)
  • (2 md B ) lastTimeSomethingInThisCollectionChanged - call to DOMS Server
  • (2 md B ) makeBundleOfObjectsChangedFromUntil - call to DOMS Server

TOTAL: 12 md

For DOMS-GUI (and Hotfolder Ingest) :

  • (2 md B ) framework code
  • (4 md B ) Given a query string, return a list of PIDs for objects found (search done by call to Summa integration component)
  • (2 md A) Return a list of all collection objects - call to DOMS Server
  • (3 md B ) Given a PID of an existing object in Fedora (for main objects, PID either entered by keyboard, or gained from a search), return a Java object representing it. This Java object will atleast have methods to do the following:
    • (1 md B ) Delete object - call to DOMS Server
    • (1 md B ) Publish object - call to DOMS Server
    • (1 md B ) Mark object as "in progress" - call to DOMS Server
    • (1 md B ) Return a list of the datastreams on the object - call to DOMS Server
    • (1 md B ) Return title of object - call to DOMS Server
    • (1 md B ) Given a name and content, add a datastream with that name and content to object - call to DOMS Server
    • (1 md B ) Given a name and PID, create a relation with the given name from current object to object with given PID - call to DOMS Server
    • (3 md B ) Given a name and a template, return a new object clone of the template and make a relation with given name from current object to new
      • (may need to receive name of view as well, to check that relation is allowed in the view)
    • (4 md C) Given view name, return list of templates for objects that are allowed as targets of relations from current object in given view (uncertainty: no time to examine to what extent this can be handled by DOMS Server)
    • (1 md A) Return outgoing relations from this object - call to DOMS Server
    • (1 md A) Return allowed relations from this object, and content models allowed for targets - call to DOMS Server
    • (1 md A) Given a name, return outgoing relations of this name from current object - call to DOMS Server
    • (2 md B ) Return the object that is the main object for current object's view
    • (1 md B ) Return a compound content model (combined from its different content models) for this object
  • Template objects in addition have the following methods:
    • (1 md A) A method to return a clone object of the template in question (needed for creating the first objects in a collection) - call to DOMS Server
  • Main objects have the following methods:
    • (1 md A) Given a view name, returns a list of the objects in this main object's view of that name - call to DOMS Server
  • Content model objects have the following methods:
    • (1 md A) Return list of all objects that subscribe to this content model - call to DOMS Server
  • File objects in addition have the following methods:
    • (2 md B ) Given filename, content, and checksum, attach a file with the given name and content to the file object (even though there may be a file already)
    • (1 md A) Delete file from file object - call to DOMS Server
  • Collection objects have the following methods:
    • (1 md A) Return all templates for this collection (one of these may produce a main object) - call to DOMS Server
  • Datastream objects have methods to do the following:
    • (1 md A) Delete datastream - call to DOMS Server
    • (1 md A) Given new content, replace the existing content in the datastream with the new content - call to DOMS Server
    • (1 md A) Return datastream content - call to DOMS Server
  • Relation objects atleast have methods:
    • (2 md A) Return PID that is target of relation
    • (1 md A) Delete relation - call to DOMS Server
    • (2 md A) Given name, set name of relation
    • (1 md A) Given PID, set target of relation

TOTAL: 47 md

Probably several of the small ones can be done in one go, so development time may become shorter. On the other hand, once we start coding, me may discover that more methods are needed. (Maybe 10 to 40 percent more methods)

TOTAL WORST-CASE: 52 - 66 md (including 10 - 40 % extra)

Ingest

  • (1 md A) Startup project
  • Hotfolder surveyor/ingester
    • (3 md A) Repeated checking of config file
    • (3 md A) Config file parser (incl. regexps) (config file in xml)
    • (4 md A) Repeated checking of each surveilled folder (against regexp)
    • (1 md A) Call of external (Java code) action (lock-stuff done in the action)
    • (6 md B ) Test-action
  • Ingest for when called by pre-ingester
    • (0 md A) Nothing needed (calls DOMS Client directly)

TOTAL: 18 md

API Estimates (last edited 2010-06-08 15:18:43 by jrg)