Search in sources :

Example 31 with org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.has

use of org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.has in project janusgraph by JanusGraph.

the class AdjacentVertexHasIdOptimizerStrategyTest method testAll.

@Test
public void testAll() {
    makeSampleGraph();
    // AdjacentVertexHasIdOptimizer out/in/both
    assertOptimization(g.V(sv[0]).outE("knows").has(ImplicitKey.ADJACENT_ID.name(), vs[50]).inV(), g.V(sv[0]).out("knows").hasId(vs[50]), optimizer);
    assertOptimization(g.V(sv[0]).inE("knows").has(ImplicitKey.ADJACENT_ID.name(), vs[50]).outV(), g.V(sv[0]).in("knows").hasId(vs[50]), optimizer);
    assertOptimization(g.V(sv[0]).bothE("knows").has(ImplicitKey.ADJACENT_ID.name(), vs[50]).otherV(), g.V(sv[0]).both("knows").hasId(vs[50]), optimizer);
    // AdjacentVertexHasIdOptimizer outE/inE/bothE
    assertOptimization(g.V(sv[0]).outE("knows").has(ImplicitKey.ADJACENT_ID.name(), vs[50]).inV(), g.V(sv[0]).outE("knows").inV().hasId(vs[50]), optimizer);
    assertOptimization(g.V(sv[0]).inE("knows").has(ImplicitKey.ADJACENT_ID.name(), vs[50]).outV(), g.V(sv[0]).inE("knows").outV().hasId(vs[50]), optimizer);
    assertOptimization(g.V(sv[0]).bothE("knows").has(ImplicitKey.ADJACENT_ID.name(), vs[50]).otherV(), g.V(sv[0]).bothE("knows").otherV().hasId(vs[50]), optimizer);
    // Result should stay the same
    assertSameResultWithOptimizations(g.V(sv[0]).as("v1").out("knows").hasId(vs[50].id()).as("v2").select("v1", "v2").by("id"), AdjacentVertexHasIdOptimizerStrategy.instance());
    // neq should not be optimized
    assertOptimization(g.V(sv[0]).in().hasId(P.neq(vs[50])), g.V(sv[0]).in().hasId(P.neq(vs[50])), optimizer);
    // repeat starts from vertex with id 0 and goes in to the sv[0] vertex then loops back out to the vertex with the next id
    int[] loop1 = { 0 };
    int[] loop2 = { 0 };
    GraphTraversal t1 = g.V(vs[0], vs[1], vs[2]).repeat(__.inE("knows").has(ImplicitKey.ADJACENT_ID.name(), sv[0].id()).outV().out(// TINKERPOP-2342
    "knows").sideEffect(e -> loop1[0] = e.loops()).has("id", loop1[0])).times(numV);
    GraphTraversal t2 = g.V(vs[0], vs[1], vs[2]).repeat(__.inE("knows").outV().hasId(sv[0].id()).out(// TINKERPOP-2342
    "knows").sideEffect(e -> loop2[0] = e.loops()).has("id", loop2[0])).times(numV);
    assertOptimization(t1, t2, optimizer);
}
Also used : Test(org.junit.jupiter.api.Test) JanusGraphAssert.assertSameResultWithOptimizations(org.janusgraph.testutil.JanusGraphAssert.assertSameResultWithOptimizations) AdjacentVertexHasIdOptimizerStrategy(org.janusgraph.graphdb.tinkerpop.optimize.strategy.AdjacentVertexHasIdOptimizerStrategy) ImplicitKey(org.janusgraph.graphdb.types.system.ImplicitKey) JanusGraphAssert.assertOptimization(org.janusgraph.testutil.JanusGraphAssert.assertOptimization) org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__(org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__) TraversalStrategy(org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategy) GraphTraversal(org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal) P(org.apache.tinkerpop.gremlin.process.traversal.P) GraphTraversal(org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal) Test(org.junit.jupiter.api.Test)

Example 32 with org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.has

use of org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.has in project open-kilda by telstra.

the class FermaIslRepository method findByPathIds.

@Override
public Collection<Isl> findByPathIds(List<PathId> pathIds) {
    List<String> pathIdAsStr = pathIds.stream().map(PathIdConverter.INSTANCE::toGraphProperty).collect(Collectors.toList());
    List<? extends PathSegmentFrame> segmentFrames = framedGraph().traverse(g -> g.V().hasLabel(PathSegmentFrame.FRAME_LABEL).has(PathSegmentFrame.PATH_ID_PROPERTY, P.within(pathIdAsStr))).toListExplicit(PathSegmentFrame.class);
    if (segmentFrames.isEmpty()) {
        return emptyList();
    }
    List<Isl> result = new ArrayList<>();
    segmentFrames.forEach(segmentFrame -> {
        framedGraph().traverse(g -> g.E().hasLabel(IslFrame.FRAME_LABEL).has(IslFrame.SRC_SWITCH_ID_PROPERTY, SwitchIdConverter.INSTANCE.toGraphProperty(segmentFrame.getSrcSwitchId())).has(IslFrame.DST_SWITCH_ID_PROPERTY, SwitchIdConverter.INSTANCE.toGraphProperty(segmentFrame.getDestSwitchId())).has(IslFrame.SRC_PORT_PROPERTY, segmentFrame.getSrcPort()).has(IslFrame.DST_PORT_PROPERTY, segmentFrame.getDestPort())).frameExplicit(IslFrame.class).forEachRemaining(frame -> result.add(addIslConfigToIsl(new Isl(frame))));
    });
    return result;
}
Also used : Collectors.groupingBy(java.util.stream.Collectors.groupingBy) PathSegmentFrame(org.openkilda.persistence.ferma.frames.PathSegmentFrame) FlowEncapsulationTypeConverter(org.openkilda.persistence.ferma.frames.converters.FlowEncapsulationTypeConverter) HashMap(java.util.HashMap) IslConfig(org.openkilda.model.IslConfig) SwitchIdConverter(org.openkilda.persistence.ferma.frames.converters.SwitchIdConverter) ArrayList(java.util.ArrayList) HashSet(java.util.HashSet) Collections.unmodifiableCollection(java.util.Collections.unmodifiableCollection) IslStatusConverter(org.openkilda.persistence.ferma.frames.converters.IslStatusConverter) Collectors.mapping(java.util.stream.Collectors.mapping) IslRepository(org.openkilda.persistence.repositories.IslRepository) Map(java.util.Map) SwitchFrame(org.openkilda.persistence.ferma.frames.SwitchFrame) Collectors.toSet(java.util.stream.Collectors.toSet) PathId(org.openkilda.model.PathId) P(org.apache.tinkerpop.gremlin.process.traversal.P) Edge(org.apache.tinkerpop.gremlin.structure.Edge) FlowEncapsulationType(org.openkilda.model.FlowEncapsulationType) Switch(org.openkilda.model.Switch) IslFrame(org.openkilda.persistence.ferma.frames.IslFrame) SwitchStatusConverter(org.openkilda.persistence.ferma.frames.converters.SwitchStatusConverter) Collections.emptyList(java.util.Collections.emptyList) Collection(java.util.Collection) Set(java.util.Set) org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__(org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__) IslStatus(org.openkilda.model.IslStatus) PersistenceException(org.openkilda.persistence.exceptions.PersistenceException) KildaBaseEdgeFrame(org.openkilda.persistence.ferma.frames.KildaBaseEdgeFrame) FermaPersistentImplementation(org.openkilda.persistence.ferma.FermaPersistentImplementation) SwitchPropertiesFrame(org.openkilda.persistence.ferma.frames.SwitchPropertiesFrame) Instant(java.time.Instant) GraphTraversal(org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal) Collectors(java.util.stream.Collectors) String.format(java.lang.String.format) Slf4j(lombok.extern.slf4j.Slf4j) List(java.util.List) IslData(org.openkilda.model.Isl.IslData) SwitchId(org.openkilda.model.SwitchId) FramedGraph(com.syncleus.ferma.FramedGraph) Optional(java.util.Optional) Isl(org.openkilda.model.Isl) SwitchStatus(org.openkilda.model.SwitchStatus) PathIdConverter(org.openkilda.persistence.ferma.frames.converters.PathIdConverter) Isl(org.openkilda.model.Isl) PathIdConverter(org.openkilda.persistence.ferma.frames.converters.PathIdConverter) IslFrame(org.openkilda.persistence.ferma.frames.IslFrame) ArrayList(java.util.ArrayList)

Example 33 with org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.has

use of org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.has in project open-kilda by telstra.

the class FermaMirrorGroupRepository method findFirstUnassignedGroupId.

@Override
public Optional<GroupId> findFirstUnassignedGroupId(SwitchId switchId, GroupId lowestGroupId, GroupId highestGroupId) {
    String switchIdAsStr = SwitchIdConverter.INSTANCE.toGraphProperty(switchId);
    Long lowestGroupIdAsLong = GroupIdConverter.INSTANCE.toGraphProperty(lowestGroupId);
    Long highestGroupIdAsLong = GroupIdConverter.INSTANCE.toGraphProperty(highestGroupId);
    try (GraphTraversal<?, ?> traversal = framedGraph().traverse(g -> g.V().hasLabel(MirrorGroupFrame.FRAME_LABEL).has(MirrorGroupFrame.SWITCH_ID_PROPERTY, switchIdAsStr).has(MirrorGroupFrame.GROUP_ID_PROPERTY, P.gte(lowestGroupIdAsLong)).has(MirrorGroupFrame.GROUP_ID_PROPERTY, P.lt(highestGroupIdAsLong)).values(MirrorGroupFrame.GROUP_ID_PROPERTY).order().math("_ + 1").as("a").where(__.not(__.V().hasLabel(MirrorGroupFrame.FRAME_LABEL).has(MirrorGroupFrame.SWITCH_ID_PROPERTY, switchIdAsStr).values(MirrorGroupFrame.GROUP_ID_PROPERTY).where(P.eq("a")))).select("a").limit(1)).getRawTraversal()) {
        if (traversal.hasNext()) {
            return traversal.tryNext().map(l -> ((Double) l).longValue()).map(GroupIdConverter.INSTANCE::toEntityAttribute);
        }
    } catch (Exception e) {
        throw new PersistenceException("Failed to traverse", e);
    }
    try (GraphTraversal<?, ?> traversal = framedGraph().traverse(g -> g.V().hasLabel(MirrorGroupFrame.FRAME_LABEL).has(MirrorGroupFrame.SWITCH_ID_PROPERTY, switchIdAsStr).has(MirrorGroupFrame.GROUP_ID_PROPERTY, lowestGroupIdAsLong)).getRawTraversal()) {
        if (!traversal.hasNext()) {
            return Optional.of(lowestGroupId);
        }
    } catch (Exception e) {
        throw new PersistenceException("Failed to traverse", e);
    }
    return Optional.empty();
}
Also used : GroupIdConverter(org.openkilda.persistence.ferma.frames.converters.GroupIdConverter) Collection(java.util.Collection) org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__(org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__) PersistenceException(org.openkilda.persistence.exceptions.PersistenceException) FermaPersistentImplementation(org.openkilda.persistence.ferma.FermaPersistentImplementation) SwitchIdConverter(org.openkilda.persistence.ferma.frames.converters.SwitchIdConverter) GraphTraversal(org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal) Collectors(java.util.stream.Collectors) MirrorGroupData(org.openkilda.model.MirrorGroup.MirrorGroupData) MirrorGroupRepository(org.openkilda.persistence.repositories.MirrorGroupRepository) List(java.util.List) SwitchId(org.openkilda.model.SwitchId) MirrorGroup(org.openkilda.model.MirrorGroup) MirrorGroupFrame(org.openkilda.persistence.ferma.frames.MirrorGroupFrame) Optional(java.util.Optional) FlowMeterFrame(org.openkilda.persistence.ferma.frames.FlowMeterFrame) KildaBaseVertexFrame(org.openkilda.persistence.ferma.frames.KildaBaseVertexFrame) GroupId(org.openkilda.model.GroupId) PathIdConverter(org.openkilda.persistence.ferma.frames.converters.PathIdConverter) PathId(org.openkilda.model.PathId) P(org.apache.tinkerpop.gremlin.process.traversal.P) PersistenceException(org.openkilda.persistence.exceptions.PersistenceException) PersistenceException(org.openkilda.persistence.exceptions.PersistenceException)

Example 34 with org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.has

use of org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.has in project open-kilda by telstra.

the class DatabaseSupportImpl method getPaths.

/**
 * Get all possible paths between source and destination switches.
 *
 * @param src source switch ID
 * @param dst destination switch ID
 * @return list of PathInfoData objects
 */
@Override
@SuppressWarnings("unchecked")
public List<PathInfoData> getPaths(SwitchId src, SwitchId dst) {
    return transactionManager.doInTransaction(() -> {
        FramedGraph framedGraph = getGraph();
        GraphTraversal<?, ?> rawTraversal = framedGraph.traverse(input -> input.V().hasLabel(SwitchFrame.FRAME_LABEL).has(SwitchFrame.SWITCH_ID_PROPERTY, src.toString()).repeat(__.outE(IslFrame.FRAME_LABEL).has(IslFrame.STATUS_PROPERTY, "active").inV().hasLabel(SwitchFrame.FRAME_LABEL).simplePath()).until(__.has(SwitchFrame.SWITCH_ID_PROPERTY, dst.toString()).or().loops().is(DEFAULT_DEPTH)).has(SwitchFrame.SWITCH_ID_PROPERTY, dst.toString()).path()).getRawTraversal();
        List<PathInfoData> deserializedResults = new ArrayList<>();
        while (rawTraversal.hasNext()) {
            ImmutablePath tpPath = (ImmutablePath) rawTraversal.next();
            List<PathNode> resultPath = new ArrayList<>();
            int seqId = 0;
            for (Object hop : tpPath) {
                if (hop instanceof Edge) {
                    Edge edge = (Edge) hop;
                    Vertex srcVertex = edge.outVertex();
                    resultPath.add(new PathNode(new SwitchId((String) srcVertex.property(SwitchFrame.SWITCH_ID_PROPERTY).value()), (Integer) edge.property(IslFrame.SRC_PORT_PROPERTY).value(), seqId++, (Long) edge.property(IslFrame.LATENCY_PROPERTY).value()));
                    Vertex dstVertex = edge.inVertex();
                    resultPath.add(new PathNode(new SwitchId((String) dstVertex.property(SwitchFrame.SWITCH_ID_PROPERTY).value()), (Integer) edge.property(IslFrame.DST_PORT_PROPERTY).value(), seqId++, (Long) edge.property(IslFrame.LATENCY_PROPERTY).value()));
                }
            }
            deserializedResults.add(new PathInfoData(0, resultPath));
        }
        return deserializedResults;
    });
}
Also used : FlowEvent(org.openkilda.model.history.FlowEvent) TransitVlanRepository(org.openkilda.persistence.repositories.TransitVlanRepository) FlowPath(org.openkilda.model.FlowPath) Isl(org.openkilda.testing.model.topology.TopologyDefinition.Isl) FlowEventRepository(org.openkilda.persistence.repositories.history.FlowEventRepository) Flow(org.openkilda.model.Flow) PersistenceContextManager(org.openkilda.persistence.context.PersistenceContextManager) FlowMeterRepository(org.openkilda.persistence.repositories.FlowMeterRepository) FlowRepository(org.openkilda.persistence.repositories.FlowRepository) SwitchFrame(org.openkilda.persistence.ferma.frames.SwitchFrame) SwitchConnectedDeviceRepository(org.openkilda.persistence.repositories.SwitchConnectedDeviceRepository) IslFrame(org.openkilda.persistence.ferma.frames.IslFrame) FlowPathRepository(org.openkilda.persistence.repositories.FlowPathRepository) FlowMirrorPoints(org.openkilda.model.FlowMirrorPoints) Collection(java.util.Collection) Vertex(org.apache.tinkerpop.gremlin.structure.Vertex) Instant(java.time.Instant) String.format(java.lang.String.format) List(java.util.List) Stream(java.util.stream.Stream) FramedGraph(com.syncleus.ferma.FramedGraph) Optional(java.util.Optional) SwitchRepository(org.openkilda.persistence.repositories.SwitchRepository) DetachedFactory(org.apache.tinkerpop.gremlin.structure.util.detached.DetachedFactory) TransactionManager(org.openkilda.persistence.tx.TransactionManager) FlowMeter(org.openkilda.model.FlowMeter) PathInfoData(org.openkilda.messaging.info.event.PathInfoData) ArrayList(java.util.ArrayList) DEFAULT_COST(org.openkilda.testing.Constants.DEFAULT_COST) OrientDbPersistenceImplementation(org.openkilda.persistence.orientdb.OrientDbPersistenceImplementation) IslRepository(org.openkilda.persistence.repositories.IslRepository) TransitVlan(org.openkilda.model.TransitVlan) PersistenceManager(org.openkilda.persistence.PersistenceManager) PathId(org.openkilda.model.PathId) OrientDbContextExtension(org.openkilda.persistence.orientdb.OrientDbContextExtension) Edge(org.apache.tinkerpop.gremlin.structure.Edge) Switch(org.openkilda.model.Switch) FlowMirrorPointsRepository(org.openkilda.persistence.repositories.FlowMirrorPointsRepository) PersistenceContext(org.openkilda.persistence.context.PersistenceContext) org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__(org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__) ImmutablePath(org.apache.tinkerpop.gremlin.process.traversal.step.util.ImmutablePath) PathNode(org.openkilda.messaging.info.event.PathNode) GraphTraversal(org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal) MeterId(org.openkilda.model.MeterId) RepositoryFactory(org.openkilda.persistence.repositories.RepositoryFactory) Collectors.toList(java.util.stream.Collectors.toList) Component(org.springframework.stereotype.Component) SwitchId(org.openkilda.model.SwitchId) SwitchStatus(org.openkilda.model.SwitchStatus) Vertex(org.apache.tinkerpop.gremlin.structure.Vertex) ArrayList(java.util.ArrayList) SwitchId(org.openkilda.model.SwitchId) PathNode(org.openkilda.messaging.info.event.PathNode) ImmutablePath(org.apache.tinkerpop.gremlin.process.traversal.step.util.ImmutablePath) PathInfoData(org.openkilda.messaging.info.event.PathInfoData) FramedGraph(com.syncleus.ferma.FramedGraph) Edge(org.apache.tinkerpop.gremlin.structure.Edge)

Example 35 with org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.has

use of org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.has in project timbuctoo by HuygensING.

the class TinkerPopOperationsTest method deleteEntitySetsModified.

@Test
public void deleteEntitySetsModified() throws Exception {
    Vres vres = createConfiguration();
    Collection collection = vres.getCollection("testthings").get();
    UUID id = UUID.randomUUID();
    String idString = id.toString();
    TinkerPopGraphManager graphManager = newGraph().withVertex(v -> v.withTimId(idString).withProperty("isLatest", true).withVre("test").withType("thing").withProperty("rev", 1).withIncomingRelation("VERSION_OF", "orig")).withVertex("orig", v -> v.withTimId(idString).withVre("test").withType("thing").withProperty("isLatest", false).withProperty("rev", 1)).wrap();
    TinkerPopOperations instance = forGraphWrapperAndMappings(graphManager, vres);
    long timeStamp = Instant.now().toEpochMilli();
    String userId = "userId";
    instance.deleteEntity(collection, id, new Change(timeStamp, userId, null));
    assertThat(graphManager.getGraph().traversal().V().has("tim_id", idString).has("deleted", true).next().value("modified"), sameJSONAs(String.format("{\"timeStamp\": %s,\"userId\": \"%s\"}", timeStamp, userId)));
}
Also used : ImmutableCreateProperty(nl.knaw.huygens.timbuctoo.core.dto.rdf.ImmutableCreateProperty) AlreadyUpdatedException(nl.knaw.huygens.timbuctoo.core.AlreadyUpdatedException) NodeFactory(org.apache.jena.graph.NodeFactory) ArgumentMatchers.eq(org.mockito.ArgumentMatchers.eq) CreateCollection(nl.knaw.huygens.timbuctoo.core.dto.CreateCollection) Matchers.not(org.hamcrest.Matchers.not) CreateEntityStubs.withProperties(nl.knaw.huygens.timbuctoo.core.dto.CreateEntityStubs.withProperties) Try(javaslang.control.Try) QuickSearch(nl.knaw.huygens.timbuctoo.core.dto.QuickSearch) RdfProperty(nl.knaw.huygens.timbuctoo.core.dto.rdf.RdfProperty) Matchers.nullValue(org.hamcrest.Matchers.nullValue) TestGraphBuilder.newGraph(nl.knaw.huygens.timbuctoo.util.TestGraphBuilder.newGraph) HAS_ENTITY_NODE_RELATION_NAME(nl.knaw.huygens.timbuctoo.core.dto.dataset.Collection.HAS_ENTITY_NODE_RELATION_NAME) QuickSearchResult(nl.knaw.huygens.timbuctoo.core.dto.QuickSearchResult) Matchers.allOf(org.hamcrest.Matchers.allOf) TinkerPopGraphManager(nl.knaw.huygens.timbuctoo.server.TinkerPopGraphManager) COLLECTION_NAME_PROPERTY_NAME(nl.knaw.huygens.timbuctoo.core.dto.dataset.Collection.COLLECTION_NAME_PROPERTY_NAME) ValueTypeInUse(nl.knaw.huygens.timbuctoo.core.dto.rdf.ValueTypeInUse) ChangeListener(nl.knaw.huygens.timbuctoo.database.tinkerpop.changelistener.ChangeListener) Vertex(org.apache.tinkerpop.gremlin.structure.Vertex) ReadEntity(nl.knaw.huygens.timbuctoo.core.dto.ReadEntity) Element(org.apache.tinkerpop.gremlin.structure.Element) Matchers.contains(org.hamcrest.Matchers.contains) Vre(nl.knaw.huygens.timbuctoo.model.vre.Vre) Matchers.is(org.hamcrest.Matchers.is) TinkerPopOperationsStubs.forGraphWrapperAndMappings(nl.knaw.huygens.timbuctoo.database.tinkerpop.TinkerPopOperationsStubs.forGraphWrapperAndMappings) CreateEntity(nl.knaw.huygens.timbuctoo.core.dto.CreateEntity) Matchers.containsString(org.hamcrest.Matchers.containsString) Mockito.mock(org.mockito.Mockito.mock) LabelP(org.apache.tinkerpop.gremlin.neo4j.process.traversal.LabelP) RAW_PROPERTY_EDGE_NAME(nl.knaw.huygens.timbuctoo.database.tinkerpop.TinkerpopSaver.RAW_PROPERTY_EDGE_NAME) Matchers.anyString(org.mockito.Matchers.anyString) ArrayList(java.util.ArrayList) Matchers.hasProperty(org.hamcrest.Matchers.hasProperty) CreateRelation(nl.knaw.huygens.timbuctoo.core.dto.CreateRelation) Lists(com.google.common.collect.Lists) TinkerPopOperationsStubs.forGraphMappingsAndChangeListener(nl.knaw.huygens.timbuctoo.database.tinkerpop.TinkerPopOperationsStubs.forGraphMappingsAndChangeListener) HAS_ENTITY_RELATION_NAME(nl.knaw.huygens.timbuctoo.core.dto.dataset.Collection.HAS_ENTITY_RELATION_NAME) TinkerPopOperationsStubs.forGraphWrapper(nl.knaw.huygens.timbuctoo.database.tinkerpop.TinkerPopOperationsStubs.forGraphWrapper) Matchers.hasSize(org.hamcrest.Matchers.hasSize) OptionalPresentMatcher.present(nl.knaw.huygens.hamcrest.OptionalPresentMatcher.present) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) RelationType(nl.knaw.huygens.timbuctoo.core.dto.RelationType) DataStream(nl.knaw.huygens.timbuctoo.core.dto.DataStream) Test(org.junit.Test) IOException(java.io.IOException) T(org.apache.tinkerpop.gremlin.structure.T) Direction(org.apache.tinkerpop.gremlin.structure.Direction) Database(nl.knaw.huygens.timbuctoo.rdf.Database) HAS_DISPLAY_NAME_RELATION_NAME(nl.knaw.huygens.timbuctoo.core.dto.dataset.Collection.HAS_DISPLAY_NAME_RELATION_NAME) Matchers.sameInstance(org.hamcrest.Matchers.sameInstance) RDF_URI_PROP(nl.knaw.huygens.timbuctoo.rdf.Database.RDF_URI_PROP) GraphReadUtils.getProp(nl.knaw.huygens.timbuctoo.model.GraphReadUtils.getProp) Change(nl.knaw.huygens.timbuctoo.model.Change) P.within(org.apache.tinkerpop.gremlin.process.traversal.P.within) SameJSONAs.sameJSONAs(uk.co.datumedge.hamcrest.json.SameJSONAs.sameJSONAs) StreamIterator.stream(nl.knaw.huygens.timbuctoo.util.StreamIterator.stream) PropertyTypes.localProperty(nl.knaw.huygens.timbuctoo.model.properties.PropertyTypes.localProperty) Graph(org.apache.tinkerpop.gremlin.structure.Graph) RDF_SYNONYM_PROP(nl.knaw.huygens.timbuctoo.rdf.Database.RDF_SYNONYM_PROP) StringProperty(nl.knaw.huygens.timbuctoo.core.dto.property.StringProperty) VertexMatcher.likeVertex(nl.knaw.huygens.timbuctoo.util.VertexMatcher.likeVertex) MockitoHamcrest.argThat(org.mockito.hamcrest.MockitoHamcrest.argThat) RelationNotPossibleException(nl.knaw.huygens.timbuctoo.core.RelationNotPossibleException) URI(java.net.URI) IS_RELATION_COLLECTION_PROPERTY_NAME(nl.knaw.huygens.timbuctoo.core.dto.dataset.Collection.IS_RELATION_COLLECTION_PROPERTY_NAME) org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.has(org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.has) CollectionBuilder(nl.knaw.huygens.timbuctoo.core.dto.dataset.CollectionBuilder) EntityFinisherHelper(nl.knaw.huygens.timbuctoo.core.EntityFinisherHelper) NotFoundException(nl.knaw.huygens.timbuctoo.core.NotFoundException) UUID(java.util.UUID) Instant(java.time.Instant) RAW_COLLECTION_NAME_PROPERTY_NAME(nl.knaw.huygens.timbuctoo.database.tinkerpop.TinkerpopSaver.RAW_COLLECTION_NAME_PROPERTY_NAME) UpdateEntity(nl.knaw.huygens.timbuctoo.core.dto.UpdateEntity) List(java.util.List) Matchers.containsInAnyOrder(org.hamcrest.Matchers.containsInAnyOrder) Matchers.equalTo(org.hamcrest.Matchers.equalTo) Optional(java.util.Optional) ArgumentMatchers.any(org.mockito.ArgumentMatchers.any) JsonBuilder.jsnO(nl.knaw.huygens.timbuctoo.util.JsonBuilder.jsnO) Collection(nl.knaw.huygens.timbuctoo.core.dto.dataset.Collection) TinkerPopOperationsStubs.forGraphMappingsAndIndex(nl.knaw.huygens.timbuctoo.database.tinkerpop.TinkerPopOperationsStubs.forGraphMappingsAndIndex) VERSION_OF(nl.knaw.huygens.timbuctoo.database.tinkerpop.VertexDuplicator.VERSION_OF) ObjectNode(com.fasterxml.jackson.databind.node.ObjectNode) VreStubs.minimalCorrectVre(nl.knaw.huygens.timbuctoo.model.vre.VreStubs.minimalCorrectVre) CollectionNameHelper.defaultEntityTypeName(nl.knaw.huygens.timbuctoo.core.CollectionNameHelper.defaultEntityTypeName) VresBuilder(nl.knaw.huygens.timbuctoo.model.vre.vres.VresBuilder) JsonBuilder.jsn(nl.knaw.huygens.timbuctoo.util.JsonBuilder.jsn) Edge(org.apache.tinkerpop.gremlin.structure.Edge) RdfReadProperty(nl.knaw.huygens.timbuctoo.core.dto.rdf.RdfReadProperty) Matchers.empty(org.hamcrest.Matchers.empty) PredicateInUse(nl.knaw.huygens.timbuctoo.core.dto.rdf.PredicateInUse) TimProperty(nl.knaw.huygens.timbuctoo.core.dto.property.TimProperty) RAW_ITEM_EDGE_NAME(nl.knaw.huygens.timbuctoo.database.tinkerpop.TinkerpopSaver.RAW_ITEM_EDGE_NAME) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) ENTITY_TYPE_NAME_PROPERTY_NAME(nl.knaw.huygens.timbuctoo.core.dto.dataset.Collection.ENTITY_TYPE_NAME_PROPERTY_NAME) Mockito.when(org.mockito.Mockito.when) PropertyNameHelper.createPropName(nl.knaw.huygens.timbuctoo.database.tinkerpop.PropertyNameHelper.createPropName) Vres(nl.knaw.huygens.timbuctoo.model.vre.Vres) Entity(nl.knaw.huygens.timbuctoo.rdf.Entity) Mockito.verify(org.mockito.Mockito.verify) Collectors.toList(java.util.stream.Collectors.toList) Matchers.emptyIterable(org.hamcrest.Matchers.emptyIterable) EdgeMatcher.likeEdge(nl.knaw.huygens.timbuctoo.util.EdgeMatcher.likeEdge) HAS_COLLECTION_RELATION_NAME(nl.knaw.huygens.timbuctoo.model.vre.Vre.HAS_COLLECTION_RELATION_NAME) TinkerPopOperationsStubs.forGraphMappingsListenerAndIndex(nl.knaw.huygens.timbuctoo.database.tinkerpop.TinkerPopOperationsStubs.forGraphMappingsListenerAndIndex) HAS_PROPERTY_RELATION_NAME(nl.knaw.huygens.timbuctoo.core.dto.dataset.Collection.HAS_PROPERTY_RELATION_NAME) RAW_COLLECTION_EDGE_NAME(nl.knaw.huygens.timbuctoo.database.tinkerpop.TinkerpopSaver.RAW_COLLECTION_EDGE_NAME) UpdateRelation(nl.knaw.huygens.timbuctoo.core.dto.UpdateRelation) Vres(nl.knaw.huygens.timbuctoo.model.vre.Vres) TinkerPopGraphManager(nl.knaw.huygens.timbuctoo.server.TinkerPopGraphManager) CreateCollection(nl.knaw.huygens.timbuctoo.core.dto.CreateCollection) Collection(nl.knaw.huygens.timbuctoo.core.dto.dataset.Collection) Matchers.containsString(org.hamcrest.Matchers.containsString) Matchers.anyString(org.mockito.Matchers.anyString) Change(nl.knaw.huygens.timbuctoo.model.Change) UUID(java.util.UUID) Test(org.junit.Test)

Aggregations

List (java.util.List)48 Vertex (org.apache.tinkerpop.gremlin.structure.Vertex)43 Optional (java.util.Optional)42 Edge (org.apache.tinkerpop.gremlin.structure.Edge)39 T (org.apache.tinkerpop.gremlin.structure.T)36 Lists (com.google.common.collect.Lists)35 Instant (java.time.Instant)34 ArrayList (java.util.ArrayList)34 IOException (java.io.IOException)33 Collectors.toList (java.util.stream.Collectors.toList)32 Direction (org.apache.tinkerpop.gremlin.structure.Direction)32 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)31 LabelP (org.apache.tinkerpop.gremlin.neo4j.process.traversal.LabelP)31 URI (java.net.URI)30 UUID (java.util.UUID)30 ReadEntity (nl.knaw.huygens.timbuctoo.core.dto.ReadEntity)30 Collection (nl.knaw.huygens.timbuctoo.core.dto.dataset.Collection)30 ObjectNode (com.fasterxml.jackson.databind.node.ObjectNode)29 Try (javaslang.control.Try)29 OptionalPresentMatcher.present (nl.knaw.huygens.hamcrest.OptionalPresentMatcher.present)29