Purpose Populate Shelving order (effectiveShelvingOrder) on the item record when the call number type is Dewey Decimal classification.
Scope
Populate effective shelving location for records that have call number type set to Dewey Decimal classification. The call number type can be stored either on holdings or item record level.
The input to this library should be a string concatenation of the following properties: call number, volume, enumeration, chronology, copy number, suffix - similarly how this is done for LC call number
For the call number and suffix properties, these should come from the effective call number components
Store the output in effectiveShelvingOrder
This should be done, under the following circumstances:
When an item is created or updated (either individually or in a batch)
When a holdings record is updated (either individually or in a batch), all items associated with it should be updated (as this can change the derivation of the input properties)
Purpose
Populate Shelving order (effectiveShelvingOrder) on the item record when the call number type is Dewey Decimal classification.
Scope
Populate effective shelving location for records that have call number type set to Dewey Decimal classification. The call number type can be stored either on holdings or item record level.
Use the marc4j.callnum library to generate the shelving order (artifacts are in maven central)
The input to this library should be a string concatenation of the following properties:
call number
,volume
,enumeration
,chronology
,copy number
,suffix
- similarly how this is done for LC call numberFor the
call number
andsuffix
properties, these should come from theeffective call number components
Store the output in
effectiveShelvingOrder
This should be done, under the following circumstances:
When an item is created or updated (either individually or in a batch)
When a holdings record is updated (either individually or in a batch), all items associated with it should be updated (as this can change the derivation of the input properties)
This should be done in a similar manner to other derived properties for items
Out of Scope
Update scripts will be addressed in MODINVSTOR-880
Generating the shelving order
Examples how the number are being parsed by marc4j library: https://github.com/solrmarc/solrmarc/blob/fef224a652d060133249945cbe636b7f2a0614fe/test/src/org/solrmarc/callnum/DeweyCallNumberTests.java#L92
Complying with the library licence
Include the following in the published jar:
a copy of the license
a note that MARC4J is covered by it, and
a link to the source repository on GitHub
Add https://www.mojohaus.org/license-maven-plugin/add-third-party-mojo.html to the pom.xml to automatically create a THIRD-PARTY.txt file that contains a link to https://github.com/marc4j/marc4j where the marc4j source code can be downloaded. The plugin will add THIRD-PARTY.txt to the mod-inventory-storage jar.