package io.lumify.foodTruck;
import io.lumify.core.ingest.graphProperty.GraphPropertyWorkData;
import io.lumify.core.ingest.graphProperty.GraphPropertyWorker;
import io.lumify.core.model.properties.LumifyProperties;
import org.securegraph.*;
import java.io.InputStream;
public class FoodTruckHasTwitterAccountOnCreateGraphPropertyWorker extends GraphPropertyWorker {
private static final String MULTI_VALUE_KEY = FoodTruckHasTwitterAccountOnCreateGraphPropertyWorker.class.getName();
@Override
public void execute(InputStream in, GraphPropertyWorkData data) throws Exception {
Edge hasTwitterUserEdge = (Edge) data.getElement();
Vertex foodTruckVertex = hasTwitterUserEdge.getVertex(Direction.OUT, getAuthorizations());
Vertex twitterUserVertex = hasTwitterUserEdge.getVertex(Direction.IN, getAuthorizations());
String imageVertexId = LumifyProperties.ENTITY_IMAGE_VERTEX_ID.getPropertyValue(twitterUserVertex);
if (imageVertexId != null && imageVertexId.length() > 0) {
LumifyProperties.ENTITY_IMAGE_VERTEX_ID.addPropertyValue(foodTruckVertex, MULTI_VALUE_KEY, imageVertexId, new Visibility(data.getVisibilitySource()), getAuthorizations());
getGraph().flush();
getWorkQueueRepository().pushGraphPropertyQueue(foodTruckVertex, MULTI_VALUE_KEY, LumifyProperties.ENTITY_IMAGE_VERTEX_ID.getPropertyName());
}
}
@Override
public boolean isHandled(Element element, Property property) {
if (!(element instanceof Edge)) {
return false;
}
Edge edge = (Edge) element;
if (!edge.getLabel().equals(FoodTruckOntology.EDGE_LABEL_HAS_TWITTER_USER)) {
return false;
}
return true;
}
}