示例#1
0
 @Override
 public PetriNet mine(LogReader logReader) {
   if (logReader != null) {
     // Mine the log for a Petri net.
     AlphaPPProcessMiner miningPlugin = new AlphaPPProcessMiner();
     PetriNetResult result = (PetriNetResult) miningPlugin.mine(logReader);
     return result.getPetriNet();
   } else {
     System.err.println("No log reader could be constructed.");
     return null;
   }
 }
示例#2
0
  public TreeSet<ProcessQueryResult> getPetriNet(Object o) {
    TreeSet<ProcessQueryResult> ret = new TreeSet<ProcessQueryResult>();
    if (o instanceof PetriNet) {
      PetriNet q = (PetriNet) o;
      DataManager dm = DataManager.getInstance();
      String strSelectPetriNet = "select process_id, pnml from petrinet";
      ResultSet rs =
          dm.executeSelectSQL(strSelectPetriNet, 0, Integer.MAX_VALUE, dm.getFetchSize());
      try {
        while (rs.next()) {
          PetriNet c = null;
          if (dm.getDBName().equalsIgnoreCase("postgresql")
              || dm.getDBName().equalsIgnoreCase("mysql")) {
            String str = rs.getString("pnml");
            byte[] temp = str.getBytes();
            c = PetriNetUtil.getPetriNetFromPnmlBytes(temp);
          } else if (dm.getDBName().equalsIgnoreCase("derby")) {
            InputStream in = rs.getAsciiStream("pnml");
            PnmlImport pnml = new PnmlImport();
            PetriNetResult result = (PetriNetResult) pnml.importFile(in);
            c = result.getPetriNet();
            result.destroy();
            in.close();
          } else {
            System.out.println(dm.getDBName() + " unsupported");
            System.exit(-1);
          }
          long process_id = rs.getLong("process_id");

          if (Ullman4PetriNet.subGraphIsomorphism(q, c)) {
            ret.add(new ProcessQueryResult(process_id, 1));
          }
          c.destroyPetriNet();
        }
        java.sql.Statement stmt = rs.getStatement();
        rs.close();
        stmt.close();
      } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      } catch (IOException e) {
        e.printStackTrace();
      }
    }

    return ret;
  }