public final GhidraClass createClass(Namespace parent, String className)
			throws DuplicateNameException, InvalidInputException {
		SymbolTable symbolTable = currentProgram.getSymbolTable();
		Namespace ns = symbolTable.getNamespace(className, parent);
		if (ns != null) {
			SymbolType type = ns.getSymbol().getSymbolType();
			if (type == SymbolType.CLASS) {
				return (GhidraClass) ns;
			}
		}
		return symbolTable.createClass(parent, className, SourceType.USER_DEFINED);
	}
Creates a new {@link GhidraClass} with the given name contained inside the
specified parent namespace.
Pass <code>null</code> for parent to indicate the global namespace.
If a GhidraClass with the given name already exists, the existing one will be returned.
@param parent the parent namespace, or null for global namespace
@param className the requested classes name
@return the GhidraClass with the given name
@throws InvalidInputException if the name is invalid
@throws DuplicateNameException thrown if a {@link Library} or {@link Namespace}
symbol already exists with the given name.
Use {@link SymbolTable#convertNamespaceToClass(Namespace)} for converting an
existing Namespace to a GhidraClass.
@throws IllegalArgumentException if the given parent namespace is not from
the {@link #currentProgram}.
@throws ConcurrentModificationException if the given parent has been deleted
@throws IllegalArgumentException if parent Namespace does not correspond to
<code>currerntProgram</code>
@see SymbolTable#convertNamespaceToClass(Namespace)
Ghidra/Features/Base/src/main/java/ghidra/program/flatapi/FlatProgramAPI.java