Decompose/NetDecom.java
private List<PetriNet4> Decompose(Place[] splitPair, PetriNet4 G) {
		List<PetriNet4> BLKS = new ArrayList<PetriNet4>();

		Place start = splitPair[0];
		Place end = splitPair[1];

		List<Transition> lt = G.get_p2t().get(start);
		for (Transition t : lt) {
			PetriNet4 blk = new PetriNet4();
			blk.add(start, t);

			// generate a subgraph from G
			generateBlock(G, t, end, blk);
			BLKS.add(blk);
		}

		// remove the extracted blks from the G
		for (PetriNet4 blk : BLKS) {
			G.removeBlk(blk);
		}

		// get a new list of subgraph, blk+public, and update subgraph
		HashMap<Place, List<Place>> nReachList = null;
		HashMap<Place, List<Place>> gReachList = G.getReachList();
		gReachList.remove(start);
		for (PetriNet4 blk : BLKS) {
			blk.addBlock(G);
			blk.update(gReachList, G.getSink());
		}

		return BLKS;
	}
//decompose current net based on split pair
decompose current net based on split pair
decompose current net based on split pair
private List<PetriNet4> Decompose(Place[] splitPair, PetriNet4 G) {
		List<PetriNet4> BLKS = new ArrayList<PetriNet4>();
		Place start = splitPair[0];
		Place end = splitPair[1];
		List<Transition> lt = G.get_p2t().get(start);
		for (Transition t : lt) {
			PetriNet4 blk = new PetriNet4();
			blk.add(start, t);
			generateBlock(G, t, end, blk);
			BLKS.add(blk);
		}
		for (PetriNet4 blk : BLKS) {
			G.removeBlk(blk);
		}
		HashMap<Place, List<Place>> nReachList = null;
		HashMap<Place, List<Place>> gReachList = G.getReachList();
		gReachList.remove(start);
		for (PetriNet4 blk : BLKS) {
			blk.addBlock(G);
			blk.update(gReachList, G.getSink());
		}
		return BLKS;
	}
private List < PetriNet4 > Decompose ( Place [ ] splitPair , PetriNet4 G ) { List < PetriNet4 > BLKS = new ArrayList < PetriNet4 > ( ) ; Place start = splitPair [ 0 ] ; Place end = splitPair [ 1 ] ; List < Transition > lt = G . get_p2t ( ) . get ( start ) ; for ( Transition t : lt ) { PetriNet4 blk = new PetriNet4 ( ) ; blk . add ( start , t ) ; generateBlock ( G , t , end , blk ) ; BLKS . add ( blk ) ; } for ( PetriNet4 blk : BLKS ) { G . removeBlk ( blk ) ; } HashMap < Place , List < Place > > nReachList = null ; HashMap < Place , List < Place > > gReachList = G . getReachList ( ) ; gReachList . remove ( start ) ; for ( PetriNet4 blk : BLKS ) { blk . addBlock ( G ) ; blk . update ( gReachList , G . getSink ( ) ) ; } return BLKS ; }
decompose current net based on split pair
decompose current net based on split pair
// generate a subgraph from G // remove the extracted blks from the G // get a new list of subgraph, blk+public, and update subgraph