package doser.webclassify.algorithm; //import java.util.LinkedList; //import java.util.List; //import java.util.concurrent.ArrayBlockingQueue; //import java.util.concurrent.BlockingQueue; //import java.util.concurrent.ThreadPoolExecutor; //import java.util.concurrent.TimeUnit; // //import org.apache.log4j.Logger; // //import doser.sequencedetection.algorithm.Cluster; //import doser.sequencedetection.algorithm.ConcurrentNCutAlgorithm; //import doser.sequencedetection.algorithm.Decomposition; //import doser.sequencedetection.algorithm.Extraction; //import doser.sequencedetection.algorithm.Sequence; //import doser.sequencedetection.algorithm.TemporalGraphGeneration; //import doser.sequencedetection.graph.Dijkstra; //import doser.sequencedetection.graph.NoRouteFoundException; //import doser.sequencedetection.graph.TemporalGraph; //import doser.webclassify.dpo.WebSite; // //public class SessionBreakDetection { // // public SessionBreakDetection() { // super(); // } // // public List<Sequence<WebSite>> sessionBreak(List<WebSite> websites) { // // Session decomposition // List<Cluster<WebSite>> clusterLst = doVideoDecomposition(websites); // // Temporal Graph Creation // TemporalGraph<Cluster<WebSite>> graph = doTemporalGraphGeneration(clusterLst); // // Shortest Path // List<Cluster<WebSite>> shortestPath = doShortestPath(graph); // // Extraction // return (doSessionExtraction(graph, shortestPath)); // } // // private List<Cluster<WebSite>> doVideoDecomposition(List<WebSite> lst) { // Decomposition<WebSite> decomp = new Decomposition<WebSite>(lst); // BlockingQueue<Runnable> queue = new ArrayBlockingQueue<Runnable>(1); // ThreadPoolExecutor ex = new ThreadPoolExecutor(1, 1, 100, // TimeUnit.SECONDS, queue); // ex.execute(decomp); // ex.shutdown(); // try { // ex.awaitTermination(100, TimeUnit.SECONDS); // } catch (InterruptedException e) { // Logger.getRootLogger().warn(e.getStackTrace()); // } // // ConcurrentNCutAlgorithm<WebSite> nCutAlgorithm = new ConcurrentNCutAlgorithm<WebSite>( // decomp.getMainCluster()); // List<Cluster<WebSite>> clusterList = nCutAlgorithm.startClustering(); // for (Cluster<WebSite> cluster : clusterList) { // List<WebSite> list = cluster.getObjectList(); // for (WebSite site : list) { // System.out.println("Site id: " + site.getObjectId()); // } // } // return clusterList; // } // // private TemporalGraph<Cluster<WebSite>> doTemporalGraphGeneration( // List<Cluster<WebSite>> lst) { // TemporalGraph<Cluster<WebSite>> graph = new TemporalGraphGeneration<WebSite>( // lst).startTemporalGraphGeneration(); // return graph; // } // // private List<Cluster<WebSite>> doShortestPath( // TemporalGraph<Cluster<WebSite>> graph) { // Dijkstra<Cluster<WebSite>> dijkstra = new Dijkstra<Cluster<WebSite>>( // graph); // List<Cluster<WebSite>> shortestPath = new LinkedList<Cluster<WebSite>>(); // try { // shortestPath = dijkstra.calculateRoute(graph.getStartObject(), // graph.getEndObject()); // } catch (NoRouteFoundException e) { // Logger.getRootLogger().error("Error:", e); // ; // } // return shortestPath; // } // // private List<Sequence<WebSite>> doSessionExtraction( // TemporalGraph<Cluster<WebSite>> graph, // List<Cluster<WebSite>> shortestPath) { // List<Sequence<WebSite>> sessions = new Extraction<WebSite>(graph, // shortestPath).generateSequences(); // return sessions; // } //}