private void readFunctionTags(DatabaseInformation infoResult, Map<String, String> keyValue)
			throws ElasticException {
		String countString = keyValue.get("functiontagcount");
		int count;
		if (countString != null) {
			count = Integer.parseInt(countString);
		}
		else {
			count = 0;				// key may not be present,  assume 0 tags
		}
		if (count <= 0) {
			infoResult.functionTags = null;
			return;
		}
		infoResult.functionTags = new ArrayList<>();
		for (int i = 0; i < count; ++i) {
			String key = "functiontag" + (i + 1);
			String value = getCriticalValue(key, keyValue);
			infoResult.functionTags.add(value);
		}
	}
Extract function tag information for this database into the DatabaseInformation object
from the key/value map. Tag information is stored as keys: functiontagcount, functiontag1, functiontag2, ...
@param infoResult is the information object that will hold results
@param keyValue is the keyword->value map for the database
@throws ElasticException if a critical function tag key is missing
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/query/elastic/ElasticDatabase.java