Search in sources :

Example 6 with IncludeIncomingOutgoingType

use of uk.gov.gchq.gaffer.operation.graph.SeededGraphFilters.IncludeIncomingOutgoingType in project Gaffer by gchq.

the class ClassicIteratorSettingsFactory method getEdgeEntityDirectionFilterIteratorSetting.

@Override
public IteratorSetting getEdgeEntityDirectionFilterIteratorSetting(final GraphFilters operation) {
    final boolean includeEntities = operation.getView().hasEntities();
    final boolean includeEdges = operation.getView().hasEdges();
    final DirectedType directedType = operation.getDirectedType();
    final IncludeIncomingOutgoingType inOutType;
    if (operation instanceof SeededGraphFilters) {
        inOutType = ((SeededGraphFilters) operation).getIncludeIncomingOutGoing();
    } else {
        inOutType = IncludeIncomingOutgoingType.OUTGOING;
    }
    final boolean deduplicateUndirectedEdges = operation instanceof GetAllElements;
    if ((null == inOutType || inOutType == IncludeIncomingOutgoingType.EITHER) && includeEdges && (DirectedType.isEither(directedType)) && !deduplicateUndirectedEdges) {
        LOGGER.debug("Returning null from getEdgeEntityDirectionFilterIteratorSetting (" + "inOutType = {}, includeEdges = {}, directedType = {}, deduplicateUndirectedEdges = {})", inOutType, includeEdges, directedType, deduplicateUndirectedEdges);
        return null;
    }
    final IteratorSetting is = new IteratorSettingBuilder(AccumuloStoreConstants.EDGE_ENTITY_DIRECTED_UNDIRECTED_INCOMING_OUTGOING_FILTER_ITERATOR_PRIORITY, AccumuloStoreConstants.EDGE_ENTITY_DIRECTED_UNDIRECTED_INCOMING_OUTGOING_FILTER_ITERATOR_NAME, EDGE_DIRECTED_UNDIRECTED_FILTER).includeIncomingOutgoing(inOutType).directedType(directedType).includeEdges(includeEdges).includeEntities(includeEntities).deduplicateUndirectedEdges(deduplicateUndirectedEdges).build();
    LOGGER.debug("Creating IteratorSetting for iterator class {} with " + "priority = {}, includeIncomingOutgoing = {}, directedType = {}, " + "includeEdges = {}, includeEntities = {}, deduplicateUndirectedEdges = {}", EDGE_DIRECTED_UNDIRECTED_FILTER, AccumuloStoreConstants.EDGE_ENTITY_DIRECTED_UNDIRECTED_INCOMING_OUTGOING_FILTER_ITERATOR_PRIORITY, inOutType, directedType, includeEdges, includeEntities, deduplicateUndirectedEdges);
    return is;
}
Also used : IteratorSetting(org.apache.accumulo.core.client.IteratorSetting) IncludeIncomingOutgoingType(uk.gov.gchq.gaffer.operation.graph.SeededGraphFilters.IncludeIncomingOutgoingType) GetAllElements(uk.gov.gchq.gaffer.operation.impl.get.GetAllElements) DirectedType(uk.gov.gchq.gaffer.data.element.id.DirectedType) SeededGraphFilters(uk.gov.gchq.gaffer.operation.graph.SeededGraphFilters) IteratorSettingBuilder(uk.gov.gchq.gaffer.accumulostore.utils.IteratorSettingBuilder)

Aggregations

DirectedType (uk.gov.gchq.gaffer.data.element.id.DirectedType)6 IncludeIncomingOutgoingType (uk.gov.gchq.gaffer.operation.graph.SeededGraphFilters.IncludeIncomingOutgoingType)6 SeededGraphFilters (uk.gov.gchq.gaffer.operation.graph.SeededGraphFilters)3 Test (org.junit.Test)2 Pair (uk.gov.gchq.gaffer.commonutil.pair.Pair)2 SeedMatching (uk.gov.gchq.gaffer.operation.SeedMatching)2 ArrayList (java.util.ArrayList)1 Collection (java.util.Collection)1 Collections (java.util.Collections)1 HashSet (java.util.HashSet)1 Set (java.util.Set)1 Predicate (java.util.function.Predicate)1 Collectors (java.util.stream.Collectors)1 Stream (java.util.stream.Stream)1 StreamSupport (java.util.stream.StreamSupport)1 IteratorSetting (org.apache.accumulo.core.client.IteratorSetting)1 Range (org.apache.accumulo.core.data.Range)1 RowRange (org.apache.hadoop.hbase.filter.MultiRowRangeFilter.RowRange)1 Logger (org.slf4j.Logger)1 LoggerFactory (org.slf4j.LoggerFactory)1