Expand a prefixed URI. There's an assumption that any URI of the form
Head:Tail is subject to mapping if Head is in the prefix mapping. So, if
someone takes it into their heads to define eg "http" or "ftp" we have problems.
Add the bindings of other to our own. We defer to the general case
because we have to ensure the URIs are checked.
Parameters: other - the PrefixMapping whose bindings we are to add to this.
Add the bindings in the map to our own. This will fail with a ClassCastException
if any key or value is not a String; we make no guarantees about order or
completeness if this happens. It will fail with an IllegalPrefixException if
any prefix is illegal; similar provisos apply.
Parameters: other - the Map whose bindings we are to add to this.
Compress the URI using the prefix mapping. This version of the code looks
through all the maplets and checks each candidate prefix URI for being a
leading substring of the argument URI. There's probably a much more
efficient algorithm available, preprocessing the prefix strings into some
kind of search table, but for the moment we don't need it.