[ 
https://jira.duraspace.org/browse/DS-1175?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=24898#comment-24898
 ] 

Richard Rodgers commented on DS-1175:
-------------------------------------

Hi Richard:

Ah. that's an interesting case. As I said, the model assumes there is an 
*algorithmic* relationship between the terms 'expression' and the lift date, 
meaning that one can supply a function that turns the terms into a real date. 
This function is guaranteed to be called exactly once at ItemInstall time, so 
that, e.g. a 90 day clock only starts then, not while an item is languishing in 
workflow. DSpace currently ships with 2 such 'functions', but of course you can 
write your own custom Setter:

the default: really an 'identity' function (f(x) = x) - ie. the terms are just 
the literal lift date as text
"day table": just a simple lookup table that maps a key to a number of days to 
add to the install date (keys are like "90 days", "2 months", etc, but 
user-configurable)

So in your case, the key question is whether there is any algorithmic 
relationship between the 2 bits of metadata - i.e. can you derive the date from 
the "on-site access only" stuff. Sounds like there isn't any such relationship, 
so your options are:

(1) What you said above, put the date in the terms field (and just use the 
default DSpace setter function), and stash the other data elsewhere.
(2) A bit more complex, but uses fewer fields:  just write a custom setter that 
trivially extends the default one to look for the date at the beginning or end 
of the terms string, and concatenate the 2 bits together: "onsite only: lift on 
12/31/2013" (i.e. that would be the terms string). 
    This version would use fewer metadata fields. It really depends on what you 
want to store in metadata, and how it will be used....

Thanks,

Richard
                
> EmbargoManager looks for Embargo Lift Date in Embargo Terms
> -----------------------------------------------------------
>
>                 Key: DS-1175
>                 URL: https://jira.duraspace.org/browse/DS-1175
>             Project: DSpace
>          Issue Type: Bug
>          Components: DSpace API
>    Affects Versions: 1.8.2
>         Environment: All
>            Reporter: Richard Jones
>            Priority: Major
>              Labels: embargo
>
> The DSpace configuration defines two fields for use in Embargo:
> embargo.field.terms - for user-supplied terms of embargo
> embargo.field.lift - for the lift date of the embargo
> The EmbargoManager attempts to load the lift date of the embargo from the 
> embargo.field.terms field, and does not check the embargo.field.lift.  This 
> then throws an error if no date is available in the embargo.field.terms.
> Looking deeper into this, there appears to be minimal usage of the 
> embargo.field.lift field, and the documentation is confusing.  Probably the 
> fix is a rationalisation of what each of these fields actually means, and a 
> re-implementation of at least the EmbargoManager and DefaultEmbargoSetter for 
> consistency.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://jira.duraspace.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Dspace-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dspace-devel

Reply via email to