class DefaultNamespacedEntityId implements NamespacedEntityId {

    public static NamespacedEntityId of(final CharSequence entityId) {
        if (entityId instanceof DefaultNamespacedEntityId) {
            return (NamespacedEntityId) entityId;
        }

        if (entityId instanceof NamespacedEntityId) {
            final String namespace = ((NamespacedEntityId) entityId).getNamespace();
            final String name = ((NamespacedEntityId) entityId).getName();
            return new DefaultNamespacedEntityId(namespace, name, false);
        }

        return new DefaultNamespacedEntityId(entityId);
    }

    private  DefaultNamespacedEntityId(final String namespace, final String name, final boolean shouldValidate);
    private  DefaultNamespacedEntityId(@Nullable final CharSequence entityId);

}