private Map<String, Class> getNestedElementsMap() {
      if (myChildrenMap != null) {
        return myChildrenMap;
      }
      final List<AbstractIntrospector> contexts = getContexts();
      Map<String, Class> names = null;
      for (AbstractIntrospector context : contexts) {
        if (context.isContainer()) {
          continue;
        }
        final Set<String> set = new HashSet<>();
        for (Iterator<String> it = context.getNestedElementsIterator(); it.hasNext(); ) {
          set.add(it.next());
        }
        if (names == null) {
          names = new HashMap<>();
          for (String s : set) {
            names.put(s, context.getNestedElementType(s));
          }
        }
        else {
          names.keySet().retainAll(set);
        }
      }
      final Map<String, Class> result = names == null ? Collections.emptyMap() : names;
      return myChildrenMap = result;
    }
private Map<String, Class> getNestedElementsMap()