2010-05-17 04:33:01 +02:00
package com.metaweb.gridworks.commands.browsing ;
2010-03-06 11:17:58 +01:00
import java.io.IOException ;
import javax.servlet.ServletException ;
import javax.servlet.http.HttpServletRequest ;
import javax.servlet.http.HttpServletResponse ;
import org.json.JSONObject ;
2010-04-23 10:25:52 +02:00
import org.slf4j.Logger ;
import org.slf4j.LoggerFactory ;
2010-03-06 11:17:58 +01:00
import com.metaweb.gridworks.browsing.Engine ;
import com.metaweb.gridworks.clustering.Clusterer ;
import com.metaweb.gridworks.clustering.binning.BinningClusterer ;
import com.metaweb.gridworks.clustering.knn.kNNClusterer ;
import com.metaweb.gridworks.commands.Command ;
import com.metaweb.gridworks.model.Project ;
public class ComputeClustersCommand extends Command {
2010-04-23 10:25:52 +02:00
final static Logger logger = LoggerFactory . getLogger ( " compute-clusters_command " ) ;
2010-03-06 11:17:58 +01:00
@Override
public void doPost ( HttpServletRequest request , HttpServletResponse response )
throws ServletException , IOException {
try {
long start = System . currentTimeMillis ( ) ;
Project project = getProject ( request ) ;
Engine engine = getEngine ( request , project ) ;
JSONObject clusterer_conf = getJsonParameter ( request , " clusterer " ) ;
Clusterer clusterer = null ;
String type = clusterer_conf . has ( " type " ) ? clusterer_conf . getString ( " type " ) : " binning " ;
if ( " knn " . equals ( type ) ) {
clusterer = new kNNClusterer ( ) ;
} else {
clusterer = new BinningClusterer ( ) ;
}
clusterer . initializeFromJSON ( project , clusterer_conf ) ;
clusterer . computeClusters ( engine ) ;
respondJSON ( response , clusterer ) ;
2010-04-23 10:25:52 +02:00
logger . info ( " computed clusters [{},{}] in {}ms " , new Object [ ] { type , clusterer_conf . getString ( " function " ) , Long . toString ( System . currentTimeMillis ( ) - start ) } ) ;
2010-03-06 11:17:58 +01:00
} catch ( Exception e ) {
respondException ( response , e ) ;
}
}
}