
git-svn-id: http://google-refine.googlecode.com/svn/branches/split-refactor@905 7d457c2a-affb-35e4-300a-418c747d4874
72 lines
2.8 KiB
Java
72 lines
2.8 KiB
Java
package com.metaweb.gridworks.commands.freebase;
|
|
|
|
import java.io.IOException;
|
|
import java.io.StringWriter;
|
|
|
|
import javax.servlet.ServletException;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
import org.json.JSONObject;
|
|
|
|
import com.metaweb.gridworks.browsing.Engine;
|
|
import com.metaweb.gridworks.browsing.FilteredRows;
|
|
import com.metaweb.gridworks.commands.Command;
|
|
import com.metaweb.gridworks.model.Project;
|
|
import com.metaweb.gridworks.protograph.Protograph;
|
|
import com.metaweb.gridworks.protograph.transpose.MqlwriteLikeTransposedNodeFactory;
|
|
import com.metaweb.gridworks.protograph.transpose.Transposer;
|
|
import com.metaweb.gridworks.protograph.transpose.TripleLoaderTransposedNodeFactory;
|
|
import com.metaweb.gridworks.util.ParsingUtilities;
|
|
|
|
public class PreviewProtographCommand extends Command {
|
|
@Override
|
|
public void doPost(HttpServletRequest request, HttpServletResponse response)
|
|
throws ServletException, IOException {
|
|
|
|
try {
|
|
Project project = getProject(request);
|
|
Engine engine = getEngine(request, project);
|
|
FilteredRows filteredRows = engine.getAllFilteredRows();
|
|
|
|
response.setCharacterEncoding("UTF-8");
|
|
response.setHeader("Content-Type", "application/json");
|
|
|
|
String jsonString = request.getParameter("protograph");
|
|
JSONObject json = ParsingUtilities.evaluateJsonStringToObject(jsonString);
|
|
Protograph protograph = Protograph.reconstruct(json);
|
|
|
|
StringBuffer sb = new StringBuffer(2048);
|
|
sb.append("{ ");
|
|
|
|
{
|
|
StringWriter stringWriter = new StringWriter();
|
|
TripleLoaderTransposedNodeFactory nodeFactory = new TripleLoaderTransposedNodeFactory(stringWriter);
|
|
|
|
Transposer.transpose(project, filteredRows, protograph, protograph.getRootNode(0), nodeFactory);
|
|
nodeFactory.flush();
|
|
|
|
sb.append("\"tripleloader\" : ");
|
|
sb.append(JSONObject.quote(stringWriter.toString()));
|
|
}
|
|
|
|
{
|
|
StringWriter stringWriter = new StringWriter();
|
|
MqlwriteLikeTransposedNodeFactory nodeFactory = new MqlwriteLikeTransposedNodeFactory(stringWriter);
|
|
|
|
Transposer.transpose(project, filteredRows, protograph, protograph.getRootNode(0), nodeFactory);
|
|
nodeFactory.flush();
|
|
|
|
sb.append(", \"mqllike\" : ");
|
|
sb.append(stringWriter.toString());
|
|
}
|
|
|
|
sb.append(" }");
|
|
|
|
respond(response, sb.toString());
|
|
} catch (Exception e) {
|
|
respondException(response, e);
|
|
}
|
|
}
|
|
}
|