class LinearId implements Id {

    @NonNull
    public static LinearId of(@NonNull Id id) {
        if (id instanceof LinearId) {
            return (LinearId) id;
        }
        if (id.getCount() == 0) {
            return new LinearId(null, DEFAULT_AGGREGATOR, null);
        }
        return new LinearId(id.toArray(), DEFAULT_AGGREGATOR, null);
    }

    public  LinearId();
    public  LinearId(String id);
    public  LinearId(String parent, String tail);
    public  LinearId(String... id);
    public  LinearId(String[] ids, IdAggregator aggregator);
    private  LinearId(String[] ids, IdAggregator aggregator, Void private_constructor);

}