@Override
    public T get() {
        if (owned != null) {
            return owned;
        } else if (borrowed != null) {
            // The reference has a borrowed value, so it can't be mutated. Copy it and make it owned.
            return setOwned(applyCopyCtor(borrowed));
        } else {
            // The reference has no owned or borrowed value, so create a new owned value.
            return setOwned(applyCtor());
        }
    }
Default implementation of {@link BuilderRef}.

<p>This class is not threadsafe; it should only be used to build up
other objects using {@link #copy()}.

@param <T> The type of value being built, borrowed, and copied.
smithy-utils/src/main/java/software/amazon/smithy/utils/DefaultBuilderRef.java