示例#1
0
  private static void intersectPropertySets(final List<TypeInfo> reducedTypeInfos) {

    // substract property set from type info with more than one
    // occurrence from type infos with the given superclass
    for (final TypeInfo info : reducedTypeInfos) {

      if (info.getHierarchyLevel() > 1) {

        final Set<String> supertypeKeySet = info.getPropertySet().keySet();

        for (final TypeInfo subType : reducedTypeInfos) {

          final Set<String> subtypeKeySet = subType.getPropertySet().keySet();

          // only substract property set if it is a true subtype (and not the same :))
          //					if ( subType.getUsages() == 1 && subType.hasSuperclass(info.getPrimaryType())) {
          if (subType.getHierarchyLevel() < info.getHierarchyLevel()
              && subType.hasSuperclass(info.getPrimaryType())) {

            subtypeKeySet.removeAll(supertypeKeySet);
          }
        }
      }
    }
  }
示例#2
0
    @Override
    public int compare(TypeInfo o1, TypeInfo o2) {

      if (reverse) {

        return Integer.valueOf(o1.getHierarchyLevel()).compareTo(o2.getHierarchyLevel());
      } else {

        return Integer.valueOf(o2.getHierarchyLevel()).compareTo(o1.getHierarchyLevel());
      }
    }