@Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        } else if (!(o instanceof ValidationEvent)) {
            return false;
        }

        ValidationEvent other = (ValidationEvent) o;
        return sourceLocation.equals(other.sourceLocation)
                && message.equals(other.message)
                && severity.equals(other.severity)
                && eventId.equals(other.eventId)
                && getShapeId().equals(other.getShapeId())
                && getSuppressionReason().equals(other.getSuppressionReason())
                && getHint().equals(other.getHint());
    }
Creates a new ValidationEvent from a {@link SourceException}.

@param exception Exception to use to create the event.
@param prefix Prefix string to add to the message.
@param shapeId ShapeId to associate with the event.
@return Returns a created validation event with an ID of Model.
smithy-model/src/main/java/software/amazon/smithy/model/validation/ValidationEvent.java