class TsMoniker implements Comparable<TsMoniker> {

    @Override
    public int hashCode() {
        switch (getType()) {
            case ANONYMOUS:
            case DYNAMIC:
                return uuid.hashCode();
            case PROVIDED:
                return 0 ^ m_source.hashCode() ^ m_id.hashCode();
            default:
                throw new RuntimeException();
        }
    }

    private  TsMoniker(String m_source, String m_id, UUID uuid);
    @Deprecated public  TsMoniker();
    public  TsMoniker(@NonNull String source, @NonNull String id);

}