final Class<?> entityClass, final Map<String, ObjectGraph> entitySubgraphs) {
final Set<String> processed = Sets.newHashSet();
for (final Map.Entry<String, ObjectGraph> entry : entitySubgraphs.entrySet()) {
final Subgraph subgraph = graph.addSubgraph(entry.getKey());
final ObjectGraph entityGraph = entry.getValue();
final Set<String> fields = entityGraph.getFields(entry.getKey());
if (!fields.isEmpty()) {
subgraph.addAttributeNodes(fields.toArray(new String[fields.size()]));
}
final Map<String, ObjectGraph> subgraphs = entityGraph.getSubgraphs(entry.getKey());
if (!subgraphs.isEmpty()) {
final Class<?> subEntityClass = entityGraph.getEntityClass();
processed.add(getProcessedSubgraph(entityClass, entry.getKey(), subEntityClass));
createSubgraphs(entry.getKey(), subgraph, subEntityClass, subgraphs, processed);
}
}