示例#1
0
  private static void reduceTypeInfos(
      final Map<String, List<TypeInfo>> typeInfoTypeMap, final List<TypeInfo> reducedTypeInfos) {

    for (final Map.Entry<String, List<TypeInfo>> entry : typeInfoTypeMap.entrySet()) {

      final List<TypeInfo> listOfTypeInfosWithSamePrimaryType = entry.getValue();
      TypeInfo firstTypeInfo = null;

      for (final TypeInfo typeInfo : listOfTypeInfosWithSamePrimaryType) {

        if (firstTypeInfo == null) {

          firstTypeInfo = typeInfo;

        } else {

          firstTypeInfo.combinePropertySets(typeInfo.getPropertySet());

          // "save" node references for later use
          firstTypeInfo.getNodeIds().addAll(typeInfo.getNodeIds());
        }
      }

      // firstTypeInfo now contains the intersection of all type infos of a given type
      reducedTypeInfos.add(firstTypeInfo);

      // set hierarchy level
      firstTypeInfo.setHierarchyLevel(listOfTypeInfosWithSamePrimaryType.size());
    }
  }