class NamedStructuresAnswerer extends Answerer {

  public static Set<String> getAllStructureNamesOfType(
      String structureType, Set<String> nodes, Map<String, Configuration> configurations) {

    Set<String> structNames = new HashSet<>();

    Function<Configuration, Object> structMapGetter =
        NamedStructurePropertySpecifier.JAVA_MAP.get(structureType).getGetter();

    for (String node : nodes) {
      Object namedStructuresMap = structMapGetter.apply(configurations.get(node));

      if (namedStructuresMap instanceof Map<?, ?>) {
        for (Map.Entry<?, ?> entry : ((Map<?, ?>) namedStructuresMap).entrySet()) {
          structNames.add((String) entry.getKey());
        }
      }
    }
    return structNames;
  }

  public  NamedStructuresAnswerer(Question question, IBatfish batfish);

}