public void setOptions(List<Option> optionList, boolean isAddToProgram) throws OptionException {
		options.setOptions(optionList);
		options.setAddToProgram(isAddToProgram);

		int mgrCount = 0;
		opts = new Boolean[N_MANAGERS + 1];
		opts[mgrCount++] = options.isData();
		opts[mgrCount++] = options.isMemoryBlocks();
		opts[mgrCount++] = options.isRegisters();
		opts[mgrCount++] = options.isInstructions();
		opts[mgrCount++] = options.isData();
		opts[mgrCount++] = options.isEquates();
		opts[mgrCount++] = options.isComments();
		opts[mgrCount++] = options.isProperties();
		opts[mgrCount++] = options.isBookmarks();
		opts[mgrCount++] = options.isTrees();
		opts[mgrCount++] = options.isEntryPoints();
		opts[mgrCount++] = options.isRelocationTable();
		opts[mgrCount++] = options.isSymbols();
		opts[mgrCount++] = options.isExternalLibraries();
		opts[mgrCount++] = options.isFunctions();
		opts[mgrCount++] = options.isSymbols();
		opts[mgrCount++] = options.isReferences();
		assert (mgrCount == N_MANAGERS + 1);
	}
Returns the program info from the underlying file. T``his method does not
make sense to invoke if a write is being performed to a new file.

@return the program info
@throws IOException if an I/O error occurs
Ghidra/Features/Sarif/src/main/java/sarif/managers/ProgramSarifMgr.java