Add Wikibase schema exporter, for issue #1776
This commit is contained in:
parent
3fb282852d
commit
e85f7d36e0
@ -0,0 +1,31 @@
|
||||
package org.openrefine.wikidata.exporters;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.Writer;
|
||||
import java.util.Properties;
|
||||
|
||||
import org.json.JSONWriter;
|
||||
import org.openrefine.wikidata.schema.WikibaseSchema;
|
||||
|
||||
import com.google.refine.browsing.Engine;
|
||||
import com.google.refine.exporters.WriterExporter;
|
||||
import com.google.refine.model.Project;
|
||||
|
||||
public class SchemaExporter implements WriterExporter {
|
||||
|
||||
@Override
|
||||
public String getContentType() {
|
||||
return "application/octet-stream";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void export(Project project, Properties options, Engine engine, Writer writer) throws IOException {
|
||||
WikibaseSchema schema = (WikibaseSchema) project.overlayModels.get("wikibaseSchema");
|
||||
if (schema == null) {
|
||||
schema = new WikibaseSchema();
|
||||
}
|
||||
JSONWriter jsonWriter = new JSONWriter(writer);
|
||||
schema.write(jsonWriter, new Properties());
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,30 @@
|
||||
package org.openrefine.wikidata.exporters;
|
||||
|
||||
import static org.openrefine.wikidata.testing.JacksonSerializationTest.assertJsonEquals;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.StringWriter;
|
||||
import java.util.Properties;
|
||||
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
import com.google.refine.browsing.Engine;
|
||||
import com.google.refine.model.Project;
|
||||
import com.google.refine.tests.RefineTest;
|
||||
|
||||
public class SchemaExporterTest extends RefineTest {
|
||||
|
||||
private SchemaExporter exporter = new SchemaExporter();
|
||||
|
||||
@Test
|
||||
public void testNoSchema()
|
||||
throws IOException {
|
||||
Project project = this.createCSVProject("a,b\nc,d");
|
||||
Engine engine = new Engine(project);
|
||||
StringWriter writer = new StringWriter();
|
||||
Properties properties = new Properties();
|
||||
exporter.export(project, properties, engine, writer);
|
||||
assertJsonEquals("{\"itemDocuments\":[]}", writer.toString());
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user