private Date fillinDate() {
		if ((dateColumnName == null) || dateColumnName.equals(Program.DATE_CREATED) ||
			dateColumnName.equals("Ingest Date")) {
			return program.getCreationDate();
		}
		Options progoptions = program.getOptions(Program.PROGRAM_INFO);
		if (!progoptions.contains(dateColumnName)) {
			return ExecutableRecord.EMPTY_DATE;
		}
		Object optionobject = progoptions.getObject(dateColumnName, null);
		if (optionobject instanceof Date) {
			return (Date) optionobject;
		}
		Date res = ExecutableRecord.EMPTY_DATE;
		if (optionobject instanceof String) {
			String str = (String) optionobject;
			if (str.length() == 19) {
				SimpleDateFormat dateFormat =
					new SimpleDateFormat(AbstractSQLFunctionDatabase.JAVA_TIME_FORMAT);
				try {
					res = dateFormat.parse(str);
				}
				catch (ParseException e) {
					res = ExecutableRecord.EMPTY_DATE;
				}
			}
		}
		return res;
	}
Prepare to collect signatures for a new program, essentially by starting up a new decompiler process
and creating an ExecutableRecord
@param prog is the program to prepare for
@param nmover if not null, overrides the "name" of the executable
@param archover if not null, overrides the "architecture" of the executable
@param compover if not null, overrides the "compiler" used to build the executable
@param repo the repository containing the executable
@param path the path (within the repo) where the executable can be found
@throws LSHException if a new executable record cannot be created
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/query/GenSignatures.java