you might be able to work me down to a partial path rather than a full path...
like if IndexInput takes String name in its ctor (the same one passed to Directory.openInput NOT the full path, keeps String as a private variable), and implements toString itself.
then we wouldnt have to track additional variables in each indexinput impl, only change openinput and the ctors to pass this information.
But i'm still not sure how useful this is.
It really seems like an implementation detail that we check the stored fields to determine if an indexformat is too old. who cares what the file name is?