Why is this constructor public?

If its to permit copying a Line (so an application can take a "snapshot"), we should instead support some sort of copy constructor that takes a Line object, or a cloneLine() method that returns a copied Line object.

Otherwise, I think this should be package-private. Only the BlameGenerator should need to construct a Line object.