private void parse(String identifier) throws IllegalArgumentException {
		if (identifier == null) {
			throw new IllegalArgumentException("Identifier is null");
		}

		String[] identifierParts = identifier.split("_");
		if (identifierParts.length >= 3) {
			applicationName = identifierParts[0].replaceAll("\\s", "").toLowerCase();
			applicationVersion = new ApplicationVersion(identifierParts[1]);
			applicationReleaseName = identifierParts[2].replaceAll("\\s", "").toUpperCase();
			// Ignore any parts after the release name...they are not part of the identifier
		}
		else {
			throw new IllegalArgumentException(
				"Identifier has " + identifierParts.length + " parts but 3 are required");
		}
	}
Parses application identifier components out of the given version string.

@param identifier An identifier string.
@throws IllegalArgumentException if the identifier string failed to parse.  The 
  exception's message has more detailed information about why it failed.
Ghidra/Framework/Utility/src/main/java/ghidra/framework/ApplicationIdentifier.java