private static void validateParts(String absoluteId, String namespace, String name, String member) {
        if (!isValidNamespace(namespace)
                || !isValidIdentifier(name)
                || (member != null && !isValidIdentifier(member))) {
            throw new ShapeIdSyntaxException("Invalid shape ID: " + absoluteId);
        }
    }
Creates an absolute shape ID from parts of a shape ID.

@param namespace Namespace of the shape.
@param name Name of the shape.
@param member Optional/nullable member name.
@return The parsed ID.
@throws ShapeIdSyntaxException when the ID is malformed.
smithy-model/src/main/java/software/amazon/smithy/model/shapes/ShapeId.java