use of au.gov.asd.tac.constellation.graph.processing.RecordStore in project constellation by constellation-app.
the class ExtractTypesFromTextPlugin method query.
@Override
protected RecordStore query(final RecordStore query, final PluginInteraction interaction, final PluginParameters parameters) throws InterruptedException, PluginException {
final RecordStore result = new GraphRecordStore();
interaction.setProgress(0, 0, "Importing...", true);
final Map<String, PluginParameter<?>> extractEntityParameters = parameters.getParameters();
final String text = extractEntityParameters.get(TEXT_PARAMETER_ID).getStringValue();
if (text == null) {
throw new PluginException(PluginNotificationLevel.ERROR, "No text provided from which to extract types.");
}
final List<ExtractedVertexType> extractedTypes = SchemaVertexTypeUtilities.extractVertexTypes(text);
final Map<String, SchemaVertexType> identifiers = new HashMap<>();
extractedTypes.forEach(extractedType -> identifiers.put(extractedType.getIdentifier(), extractedType.getType()));
for (final String identifier : identifiers.keySet()) {
result.add();
result.set(GraphRecordStoreUtilities.SOURCE + VisualConcept.VertexAttribute.IDENTIFIER, identifier);
result.set(GraphRecordStoreUtilities.SOURCE + AnalyticConcept.VertexAttribute.TYPE, identifiers.get(identifier));
result.set(GraphRecordStoreUtilities.SOURCE + AnalyticConcept.VertexAttribute.SEED, "true");
}
ConstellationLoggerHelper.createPropertyBuilder(this, result.getAll(GraphRecordStoreUtilities.SOURCE + VisualConcept.VertexAttribute.IDENTIFIER), ConstellationLoggerHelper.SUCCESS);
interaction.setProgress(1, 0, "Completed successfully - imported " + result.size() + " entities.", true);
return result;
}
use of au.gov.asd.tac.constellation.graph.processing.RecordStore in project constellation by constellation-app.
the class TSVDropper method drop.
@Override
public BiConsumer<Graph, DropInfo> drop(final DropTargetDropEvent dtde) {
// Only work on files
final Transferable transferable = dtde.getTransferable();
if (transferable.isDataFlavorSupported(DataFlavor.javaFileListFlavor)) {
try {
// Get the data as a list of files
final Object data = dtde.getTransferable().getTransferData(DataFlavor.javaFileListFlavor);
// data will be list of files which extends Object type
@SuppressWarnings("unchecked") final List<File> files = (List<File>) data;
// Create a record store to hold the combined results
final RecordStore recordStore = new GraphRecordStore();
boolean badData = false;
// Process each file...
for (final File file : files) {
// Only process files
if (file.isFile()) {
// Only process files that have a .tsv or .tsv.gz extension
// If any file does not have this extension then reject all the files.
final InputStream in;
if (StringUtils.endsWithIgnoreCase(file.getName(), FileExtensionConstants.TAB_SEPARATED_VALUE + FileExtensionConstants.GZIP)) {
in = new GZIPInputStream(new FileInputStream(file));
} else if (StringUtils.endsWithIgnoreCase(file.getName(), FileExtensionConstants.TAB_SEPARATED_VALUE)) {
in = new FileInputStream(file);
} else {
badData = true;
break;
}
// Open a reader so that we can read the file line by line
try (BufferedReader reader = new BufferedReader(new InputStreamReader(in, StandardCharsets.UTF_8.name()))) {
String[] columnHeaders = null;
String line = reader.readLine();
while (line != null) {
String[] fields = line.split(SeparatorConstants.TAB);
if (columnHeaders == null) {
columnHeaders = fields;
} else {
recordStore.add();
final int fieldsCount = Math.min(columnHeaders.length, fields.length);
for (int i = 0; i < fieldsCount; i++) {
recordStore.set(columnHeaders[i], fields[i]);
}
}
line = reader.readLine();
}
}
// If any directories are encountered then don't allow the drop
} else {
badData = true;
break;
}
}
if (!badData && recordStore.size() > 0) {
return (graph, dropInfo) -> PluginExecution.withPlugin(new TSVDropperToGraphPlugin(recordStore, files)).executeLater(graph);
}
} catch (final UnsupportedFlavorException | IOException ex) {
Exceptions.printStackTrace(ex);
}
}
return null;
}
use of au.gov.asd.tac.constellation.graph.processing.RecordStore in project constellation by constellation-app.
the class TestParametersPluginNGTest method testQueryResults.
/**
* Test of query method, of class TestParametersPlugin. Tests querying
* results from graph
*/
@Test
public void testQueryResults() throws Exception {
System.out.println("Test Query Results");
final TestParametersPlugin instance = new TestParametersPlugin();
final PluginParameters result = instance.createParameters();
final GraphRecordStore recordStore = new GraphRecordStore();
final DefaultPluginInteraction interaction = new DefaultPluginInteraction(null, null);
// Set plugin query name here before execution
result.getParameters().get(CoreGlobalParameters.QUERY_NAME_PARAMETER_ID).setStringValue("TESTPARAMETERSPLUGIN");
// Set plugin parameters here before execution
result.getParameters().get(TestParametersPlugin.LEVEL_PARAMETER_ID).setStringValue("None");
final RecordStore queryResults = instance.query(recordStore, interaction, result);
// Test the amount of entries in the RecordStore
assertEquals(queryResults.size(), 1);
final DateTimeRange dtr = result.getDateTimeRangeValue(CoreGlobalParameters.DATETIME_RANGE_PARAMETER_ID);
final ZonedDateTime[] dtrStartEnd = dtr.getZonedStartEnd();
// Test the values entered
assertEquals(queryResults.get(GraphRecordStoreUtilities.SOURCE + AnalyticConcept.VertexAttribute.RAW), "name1@domain1.com");
assertEquals(queryResults.get(GraphRecordStoreUtilities.SOURCE + AnalyticConcept.VertexAttribute.TYPE), "Email");
assertEquals(queryResults.get(GraphRecordStoreUtilities.SOURCE + AnalyticConcept.VertexAttribute.COMMENT), "TESTPARAMETERSPLUGIN");
assertEquals(queryResults.get(GraphRecordStoreUtilities.SOURCE + TemporalConcept.VertexAttribute.LAST_SEEN), DateTimeFormatter.ISO_INSTANT.format(dtrStartEnd[0]).replace("Z", ".000Z"));
assertEquals(queryResults.get(GraphRecordStoreUtilities.DESTINATION + AnalyticConcept.VertexAttribute.RAW), "name2@domain2.com");
assertEquals(queryResults.get(GraphRecordStoreUtilities.DESTINATION + AnalyticConcept.VertexAttribute.TYPE), "Email");
assertEquals(queryResults.get(GraphRecordStoreUtilities.DESTINATION + AnalyticConcept.VertexAttribute.COMMENT), "TESTPARAMETERSPLUGIN");
assertEquals(queryResults.get(GraphRecordStoreUtilities.DESTINATION + TemporalConcept.VertexAttribute.LAST_SEEN), DateTimeFormatter.ISO_INSTANT.format(dtrStartEnd[1]).replace("Z", ".000Z"));
}
use of au.gov.asd.tac.constellation.graph.processing.RecordStore in project constellation by constellation-app.
the class ExtractTypesFromTextPluginNGTest method testQuery.
/**
* Test of query method, of class ExtractTypesFromTextPlugin.
*
* @throws java.lang.Exception
*/
@Test
public void testQuery() throws Exception {
RecordStore query = new GraphRecordStore();
ExtractTypesFromTextPlugin instance = new ExtractTypesFromTextPlugin();
PluginInteraction interaction = new TextPluginInteraction();
PluginParameters parameters = instance.createParameters();
parameters.getParameters().get(ExtractTypesFromTextPlugin.TEXT_PARAMETER_ID).setStringValue("Email Person Communication");
RecordStore expResult = new GraphRecordStore();
RecordStore result = instance.query(query, interaction, parameters);
assertEquals(result, expResult);
}
use of au.gov.asd.tac.constellation.graph.processing.RecordStore in project constellation by constellation-app.
the class ExtractTypesFromTextPluginNGTest method testNullQuery.
/**
* Test of query method in class ExtractTypesFromTextPlugin using a null
* string
*
* @throws Exception
*/
@Test(expectedExceptions = PluginException.class)
public void testNullQuery() throws Exception {
RecordStore query = new GraphRecordStore();
ExtractTypesFromTextPlugin instance = new ExtractTypesFromTextPlugin();
PluginInteraction interaction = new TextPluginInteraction();
PluginParameters parameters = instance.createParameters();
RecordStore result = instance.query(query, interaction, parameters);
}
Aggregations