Right now, type validation/normalization is just a big method with a switch statement.
Should type handling be moved to separate classes, e.g., have PackageURL handle validation/normalization only in the general case and have each type handle itself?