예제 #1
0
  /* (non-Javadoc)
   * @see org.sosy_lab.ccvisu.readers.filter.Filter#apply(org.sosy_lab.ccvisu.graph.Relation)
   */
  @Override
  public Relation apply(Relation relation) {
    assert (relation != null);
    Relation newRel = new Relation();

    for (Tuple tuple : relation) {
      if (nameIsWhitelisted(tuple.getRelationName())) {
        newRel.addTuple(tuple);
      }
    }

    return newRel;
  }
예제 #2
0
파일: Sort.java 프로젝트: michael-k/ccvisu
    @Override
    public int compare(final Tuple leftTuple, final Tuple rightTuple) {
      assert (leftTuple != null && rightTuple != null);

      if (!leftTuple.getRelationName().equals(rightTuple.getRelationName())) {
        return leftTuple.getRelationName().compareTo(rightTuple.getRelationName());

      } else {
        Iterator<String> leftIterator = leftTuple.getTupleElements().iterator();
        Iterator<String> rightIterator = rightTuple.getTupleElements().iterator();

        while (leftIterator.hasNext() && rightIterator.hasNext()) {
          String str0 = leftIterator.next();
          String str1 = rightIterator.next();

          if (!str0.equals(str1)) {
            return str0.compareTo(str1);
          }
        }

        if (leftIterator.hasNext()) {
          // leftTuple is longer
          return 1;

        } else if (rightIterator.hasNext()) {
          // rightTuple is longer
          return -1;

        } else {
          // both are exactly equal
          return 0;
        }
      }
    }