Implements a resource catalog backed by a resource store.
class base resource catalog
implements resource catalog, reference[dictionary[string, resource identifier] or null]
private resource store the resource store
private string the scheme
protected base resource catalog(resource store the resource store, string the scheme, immutable list[string] path)
override dictionary[string, resource identifier] or null get()
overload implement resource identifier resolve(string name)
if name • is empty
if scheme range is_not null
while index < components • size
else if component == resource util • PARENT CATALOG
if absolute
else if result • is empty
if !the resource store • allow scheme(candidate scheme)
return base resource identifier • new(the resource store, candidate scheme, components • frozen copy() !> immutable list[string])
var nonnegative index
if components • first • is empty
else
index = 0
index += 1
if component • is empty || component == resource util • CURRENT CATALOG
continue
if result • is empty
else
else
if result • last == resource util • PARENT CATALOG
else
assert the resource store • allow up
result • remove last()
result • prepend("")
overload implement resource identifier resolve(string name, extension or null the extension)