This interface is a marker for classes that enforce the following conditions:
#toString() is
overridden - The class has a public static method (
fromString) that takes a single String and returns an instance
of the class #hashCode() and #equals(Object) are overridden to provide equivalence - It is
always the case that for an instance
a of a Stringifyable class Foo,
a.equals(new Foo(a.toString()) returns true
Note that while an implementing class may have a
constructor that takes a single
String, the second point is necessary for cases when an implementor
wishes to manage the set of instances rather than always create new instances.