private NeighborGenerator[] buildNeighborGenerators(int round) {
		ArrayList<NeighborGenerator> generatorList = new ArrayList<NeighborGenerator>();
		if (round == 0) {
			// For first round only collect new matches from "close" relationships (i.e. parent/child)
			// of the seed match.
			generatorList.add(new NeighborGenerator.Children(vectorFactory, impThreshold));
			generatorList.add(new NeighborGenerator.Parents(vectorFactory, impThreshold));
			// If the format includes explicit namespace information for functions,
			// use it when generating new matches.
			if (useNamespaceNeighbors) {
				generatorList.add(
					new NamespaceNeighborhood(vectorFactory, impThreshold, sourceNodes, destNodes));
			}
		}
		else {
			// For later rounds, also collect matches from more distant relationships (grandparent, grandchild, etc.)
			generatorList.add(new NeighborGenerator.Children(vectorFactory, impThreshold));
			generatorList.add(new NeighborGenerator.Parents(vectorFactory, impThreshold));
			generatorList.add(new NeighborGenerator.GrandChildren(vectorFactory, impThreshold));
			generatorList.add(new NeighborGenerator.Siblings(vectorFactory, impThreshold));
			generatorList.add(new NeighborGenerator.Spouses(vectorFactory, impThreshold));
			generatorList.add(new NeighborGenerator.GrandParents(vectorFactory, impThreshold));
			if (useNamespaceNeighbors) {
				generatorList.add(
					new NamespaceNeighborhood(vectorFactory, impThreshold, sourceNodes, destNodes));
			}
		}
		NeighborGenerator[] res = new NeighborGenerator[generatorList.size()];
		generatorList.toArray(res);
		return res;
	}
Establish what neighborhood generation strategy will be used
@param round - which round to build a strategy for
@return an array of NeighborGenerators
Ghidra/Features/VersionTrackingBSim/src/main/java/ghidra/feature/vt/api/BSimProgramCorrelatorMatching.java