package waymaker.spec; // Copyright © 2015 Michael Allan. Licence MIT. /** A universally decisive, tri-serial identity tag. Although it has only a single implementation in * {@linkplain UDID UDID}, the interface is separately defined here in order to enable useful patterns * of subtyping, such as the diamond pattern shown here.
* * TriSerialID * | * | * TriSerialUDID * / \ * / \ * / \ * VotingID ImpersonalID * / \ / \ * / \ / \ * / \ / \ * PersonID PipeID AnotherID* * Here a VotingID or ImpersonalID as such is also a TriSerialUDID, complete with all its * methods. This is possible only because of the separate interface for TriSerialUDID. */ public interface TriSerialUDID extends Comparable
i.{@linkplain ID#equalsNumerically(ID) equalsNumerically}(j)
may be true, but
* i.equals(j)
will be false.
*/
public String scope();
}