org.marc4j.callnum

Provides classes to parse and manipulate call numbers.

The main purpose is to produce lexically-sortable sort keys for call numbers. The basic strategy is to assume that letters in call numbers will sort naturally. Numbers will be treated according to whether they sort as integer values or decimal values. Integer values, generally before the Cutter or years in the cutter, will be prepended with the number of digits. Thus one-digit integer values will be prepended with {{1}}, two-digit integer with {{2}}, etc. Decimal values, numbers in the Cutter, will not be modified The resulting keys will sort lexically.

Motivated by Naomi Dushay's earlier `CallNumUtils`. Sort key algorithm suggested by John Craig.