protected void resolveNames(List<String> nameList) throws OmfException {
		if (segmentNameIndex.value() == 0) {
			segmentName = "";			// Name is unused
		}
		else {
			if (segmentNameIndex.value() > nameList.size()) {
				throw new OmfException("Segment name index out of bounds");
			}
			segmentName = nameList.get(segmentNameIndex.value() - 1);
		}
		if (classNameIndex.value() == 0) {
			className = "";
		}
		else {
			if (classNameIndex.value() > nameList.size()) {
				throw new OmfException("Class name index out of bounds");
			}
			className = nameList.get(classNameIndex.value() - 1);
		}
		if (overlayNameIndex.value() == 0) {
			overlayName = "";
		}
		else {
			if (overlayNameIndex.value() > nameList.size()) {
				throw new OmfException("Overlay name index out of bounds");
			}
			overlayName = nameList.get(overlayNameIndex.value() - 1);
		}

		// Once we know the class name, we can make some educated guesses about read/write/exec permissions
		isReadable = true;
		if (className.equals("CODE") || className.equals("code")) {
			isCode = true;
			isWritable = false;
			isExecutable = true;
		}
		else {
			isCode = false;
			isWritable = true;
			isExecutable = false;
		}
	}
Resolve special names from the name list such as: segment, class, overlay, names.
This routine also determines the read/write/execute permissions for the segment
based on the class name.
@param nameList is the array of names associated with the file
@throws OmfException for improper name indices
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/omf/omf/OmfSegmentHeader.java