Esempio n. 1
0
  /**
   * @param kam1
   * @param kam2
   * @return
   * @throws InvalidArgument
   */
  public static Kam union(Kam kam1, Kam kam2) throws InvalidArgument {

    if (!kam1.getKamInfo().equals(kam2.getKamInfo())) {
      throw new InvalidArgument("Kam1 and Kam2 must reference the same kam in the KamStore");
    }
    Kam newKam = newInstance(kam1);
    newKam.union(kam1.getEdges());
    newKam.union(kam2.getEdges());

    return newKam;
  }
Esempio n. 2
0
  /**
   * @param kam1
   * @param edges
   * @return
   * @throws InvalidArgument
   */
  public static Kam union(Kam kam1, List<KamEdge> kamEdges) throws InvalidArgument {

    Kam newKam = newInstance(kam1);
    newKam.union(kam1.getEdges());
    newKam.union(kamEdges);

    return newKam;
  }
Esempio n. 3
0
  /**
   * @param kam1
   * @param kam2
   * @return
   * @throws InvalidArgument
   */
  public static Kam difference(Kam kam1, Kam kam2) throws InvalidArgument {

    if (!kam1.getKamInfo().equals(kam2.getKamInfo())) {
      throw new InvalidArgument("Kam1 and Kam2 must reference the same kam in the KamStore");
    }
    List<KamEdge> kamEdges = new ArrayList<KamEdge>();

    // First check for edges in Kam1 that are not in Kam2
    for (KamEdge kamEdge : kam1.getEdges()) {
      if (!kam2.contains(kamEdge)) {
        kamEdges.add(kamEdge);
      }
    }
    // Now check for edges in Kam2 that are not in Kam1
    for (KamEdge kamEdge : kam2.getEdges()) {
      if (!kam1.contains(kamEdge)) {
        kamEdges.add(kamEdge);
      }
    }
    // Create a new Kam with the difference set from both Kams
    Kam newKam = newInstance(kam1);
    newKam.union(kamEdges);
    return newKam;
  }
Esempio n. 4
0
  /**
   * @param kam
   * @param edgeFilter
   * @return
   * @throws InvalidArgument
   */
  public static Kam filter(Kam kam, EdgeFilter edgeFilter) throws InvalidArgument {

    Kam newKam = newInstance(kam);
    newKam.union(kam.getEdges(edgeFilter));
    return newKam;
  }