Пример #1
0
 /**
  * Get all EC in this forest
  *
  * @return Set
  */
 Set getAllEC() {
   Set allECSet = new HashSet();
   for (Iterator it = forest.iterator(); it.hasNext(); ) {
     EqualClass ec = (EqualClass) it.next();
     allECSet.addAll(ec.getAllSubEqualClasses());
   }
   return allECSet;
 }
Пример #2
0
 /** cleanNonRoot */
 public void cleanNonRoot() {
   for (Iterator it = forest.iterator(); it.hasNext(); ) {
     EqualClass ec = (EqualClass) it.next();
     if (!ec.getSuperClass().isEmpty()) {
       it.remove();
     }
   }
 }
Пример #3
0
 void addRoot(EqualClass ec) {
   // check ec's offspring , and remove them from root set
   Set subSet = ec.getAllSubEqualClasses();
   forest.removeAll(subSet);
   // add the EC as root
   forest.add(ec);
 }
Пример #4
0
  public JTreeEx visualize() {
    JTreeEx tree = new JTreeEx();
    DefaultTreeModel model = (DefaultTreeModel) tree.getModel();

    EqualClass top = new EqualClass();
    top.addTerm("Thing");
    TypedNode root = new TypedNode(top);
    model.setRoot(root);

    for (Iterator it = forest.iterator(); it.hasNext(); ) {
      EqualClass ec = (EqualClass) it.next();
      model.insertNodeInto((MutableTreeNode) ec.visualize(), root, root.getChildCount());
    }

    return tree;
  }
Пример #5
0
  public Object clone(Map oldEC2newEC) {
    Set allECSet = getAllEC();

    // make clone of all old ec, create a map from old ecs to new ecs
    oldEC2newEC.clear();
    EqualClassGraph newECF = new EqualClassGraph();
    for (Iterator it = allECSet.iterator(); it.hasNext(); ) {
      EqualClass oldEC = (EqualClass) it.next();
      EqualClass newEC = (EqualClass) oldEC.clone();
      oldEC2newEC.put(oldEC, newEC);
      if (this.forest.contains(oldEC)) {
        newECF.addRoot(newEC);
      }
    }

    // update super and sub class
    for (Iterator it = allECSet.iterator(); it.hasNext(); ) {
      EqualClass oldEc = (EqualClass) it.next();
      EqualClass ec = (EqualClass) oldEC2newEC.get(oldEc);

      for (Iterator sup = oldEc.getSuperClass().iterator(); sup.hasNext(); ) {
        EqualClass supOne = (EqualClass) sup.next();
        EqualClass newSupOne = (EqualClass) oldEC2newEC.get(supOne);
        if (newSupOne != null) {
          ec.removeSuperClass(supOne);
          ec.addSuperClass(newSupOne);
        }
      }
      for (Iterator sub = oldEc.getSubClass().iterator(); sub.hasNext(); ) {
        EqualClass subOne = (EqualClass) sub.next();
        EqualClass newSubOne = (EqualClass) oldEC2newEC.get(subOne);
        if (newSubOne != null) {
          ec.removeSubClass(subOne);
          ec.addSubClass(newSubOne);
        }
      }
    }
    return newECF;
  }
Пример #6
0
 void removeRoot(EqualClass ec) {
   // remove the EC and add all its direct children as root
   forest.addAll(ec.getSubClass());
   forest.remove(ec);
 }