@Override
	public SettingsDefinition[] getSettingsDefinitions() {
		lock.acquire();
		try {
			checkIsValid();
			if (settingsDef == null) {
				DataType dt = getDataType();
				SettingsDefinition[] settingsDefinitions = dt.getSettingsDefinitions();
				TypeDefSettingsDefinition[] typeDefSettingsDefinitions =
					dt.getTypeDefSettingsDefinitions();
				settingsDef = new SettingsDefinition[settingsDefinitions.length +
					typeDefSettingsDefinitions.length];
				System.arraycopy(settingsDefinitions, 0, settingsDef, 0,
					settingsDefinitions.length);
				System.arraycopy(typeDefSettingsDefinitions, 0, settingsDef,
					settingsDefinitions.length, typeDefSettingsDefinitions.length);
			}
			return settingsDef;
		}
		finally {
			lock.release();
		}
	}
Construct TypeDefDB instance
@param dataMgr datatype manager
@param cache DataTypeDB cache
@param adapter TypeDef record adapter
@param record TypeDefDB record
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/TypedefDB.java