protected FetchHints idFetchHintsToElementFetchHints(EnumSet<IdFetchHint> idFetchHints) { return idFetchHints.contains(IdFetchHint.INCLUDE_HIDDEN) ? FetchHints.builder().setIncludeHidden(true).build() : FetchHints.NONE; }
public FetchHintsBuilder(FetchHints fetchHints) { includeAllProperties = fetchHints.isIncludeAllProperties(); propertyNamesToInclude = fetchHints.getPropertyNamesToInclude(); includeAllPropertyMetadata = fetchHints.isIncludeAllPropertyMetadata(); metadataKeysToInclude = fetchHints.getMetadataKeysToInclude(); includeHidden = fetchHints.isIncludeHidden(); includeAllEdgeRefs = fetchHints.isIncludeAllEdgeRefs(); includeOutEdgeRefs = fetchHints.isIncludeOutEdgeRefs(); includeInEdgeRefs = fetchHints.isIncludeInEdgeRefs(); edgeLabelsOfEdgeRefsToInclude = fetchHints.getEdgeLabelsOfEdgeRefsToInclude(); includeEdgeLabelsAndCounts = fetchHints.isIncludeEdgeLabelsAndCounts(); includeExtendedDataTableNames = fetchHints.isIncludeExtendedDataTableNames(); }
@Override public Entry getEntry(String key, Visibility visibility) { getFetchHints().assertMetadataIncluded(key); getEntriesLock().readLock().lock(); try { return entries.get(toMapKey(key, visibility)); } finally { getEntriesLock().readLock().unlock(); } }
public boolean isIncludeEdgeRefs() { return isIncludeAllEdgeRefs() || isIncludeInEdgeRefs() || isIncludeOutEdgeRefs() || (getEdgeLabelsOfEdgeRefsToInclude() != null && getEdgeLabelsOfEdgeRefsToInclude().size() > 0); }
public boolean isIncludeMetadata(String metadataKey) { if (isIncludeAllPropertyMetadata()) { return true; } if (getMetadataKeysToInclude() != null && getMetadataKeysToInclude().contains(metadataKey)) { return true; } return false; }
if (fetchHints.isIncludeAllEdgeRefs() || fetchHints.isIncludeInEdgeRefs() || fetchHints.isIncludeEdgeLabelsAndCounts() || fetchHints.hasEdgeLabelsOfEdgeRefsToInclude()) { columnFamiliesToFetch.add(AccumuloVertex.CF_IN_EDGE); columnFamiliesToFetch.add(AccumuloVertex.CF_IN_EDGE_HIDDEN); columnFamiliesToFetch.add(AccumuloVertex.CF_IN_EDGE_SOFT_DELETE); if (fetchHints.isIncludeAllEdgeRefs() || fetchHints.isIncludeOutEdgeRefs() || fetchHints.isIncludeEdgeLabelsAndCounts() || fetchHints.hasEdgeLabelsOfEdgeRefsToInclude()) { columnFamiliesToFetch.add(AccumuloVertex.CF_OUT_EDGE); columnFamiliesToFetch.add(AccumuloVertex.CF_OUT_EDGE_HIDDEN); columnFamiliesToFetch.add(AccumuloVertex.CF_OUT_EDGE_SOFT_DELETE); if (fetchHints.isIncludeProperties()) { columnFamiliesToFetch.add(AccumuloElement.CF_PROPERTY); columnFamiliesToFetch.add(AccumuloElement.CF_PROPERTY_HIDDEN); columnFamiliesToFetch.add(AccumuloElement.CF_PROPERTY_SOFT_DELETE); if (fetchHints.isIncludePropertyMetadata()) { columnFamiliesToFetch.add(AccumuloElement.CF_PROPERTY_METADATA); columnFamiliesToFetch.add(AccumuloElement.CF_PROPERTY_HIDDEN); columnFamiliesToFetch.add(AccumuloElement.CF_PROPERTY_SOFT_DELETE); if (fetchHints.isIncludeExtendedDataTableNames()) { columnFamiliesToFetch.add(AccumuloElement.CF_EXTENDED_DATA);
public void validateHasEdgeFetchHints(Direction direction, String... labels) { if (!isIncludeEdgeRefs()) { throw new VertexiumMissingFetchHintException(this, "edgeRefs"); } switch (direction) { case OUT: if (!isIncludeOutEdgeRefs() && !hasEdgeLabelsOfEdgeRefsToInclude()) { throw new VertexiumMissingFetchHintException(this, "outEdgeRefs or edgeLabels"); } break; case IN: if (!isIncludeInEdgeRefs() && !hasEdgeLabelsOfEdgeRefsToInclude()) { throw new VertexiumMissingFetchHintException(this, "inEdgeRefs or edgeLabels"); } break; } if (labels != null && labels.length != 0 && !isIncludeAllEdgeRefs() && !isIncludeInEdgeRefs() && !isIncludeOutEdgeRefs() && (getEdgeLabelsOfEdgeRefsToInclude() != null && getEdgeLabelsOfEdgeRefsToInclude().size() > 0)) { for (String label : labels) { if (!getEdgeLabelsOfEdgeRefsToInclude().contains(label)) { throw new VertexiumMissingFetchHintException(this, "edgeLabel:" + label); } } } }
private Iterable<Map.Entry<Text, org.vertexium.accumulo.iterator.model.EdgeInfo>> getEdgeInfos(Direction direction) { if (!getFetchHints().isIncludeEdgeRefs()) { throw new VertexiumException("getEdgeInfos called without including any edge infos"); } switch (direction) { case IN: if (!getFetchHints().isIncludeInEdgeRefs() && !getFetchHints().hasEdgeLabelsOfEdgeRefsToInclude()) { return null; } if (this.inEdges instanceof EdgesWithEdgeInfo) { return ((EdgesWithEdgeInfo) this.inEdges).getEntries(); } throw new VertexiumException("Cannot get edge info"); case OUT: if (!getFetchHints().isIncludeOutEdgeRefs() && !getFetchHints().hasEdgeLabelsOfEdgeRefsToInclude()) { return null; } if (this.outEdges instanceof EdgesWithEdgeInfo) { return ((EdgesWithEdgeInfo) this.outEdges).getEntries(); } throw new VertexiumException("Cannot get edge info"); case BOTH: return new JoinIterable<>(getEdgeInfos(Direction.IN), getEdgeInfos(Direction.OUT)); default: throw new VertexiumException("Unexpected direction: " + direction); } }
@Override public ImmutableSet<String> getExtendedDataTableNames() { if (!getFetchHints().isIncludeExtendedDataTableNames()) { throw new VertexiumMissingFetchHintException(getFetchHints(), "includeExtendedDataTableNames"); } return extendedDataTableNames; }
protected boolean isIncluded( InMemoryTableElement element, FetchHints fetchHints, Authorizations authorizations ) { boolean includeHidden = fetchHints.isIncludeHidden(); if (!element.canRead(authorizations)) { return false; } if (!includeHidden) { if (element.isHidden(authorizations)) { return false; } } return true; }
public boolean isIncludeProperty(String propertyName) { if (isIncludeAllProperties()) { return true; } if (getPropertyNamesToInclude() != null && getPropertyNamesToInclude().contains(propertyName)) { return true; } return false; }
protected Iterable<Property> internalGetProperties(String key, String name) { getFetchHints().assertPropertyIncluded(name); return new FilterIterable<Property>(getProperties()) { @Override protected boolean isIncluded(Property property) { if (key != null && !property.getKey().equals(key)) { return false; } return property.getName().equals(name); } }; }
public boolean hasEdgeLabelsOfEdgeRefsToInclude() { return getEdgeLabelsOfEdgeRefsToInclude() != null && getEdgeLabelsOfEdgeRefsToInclude().size() > 0; }
if (fetchHints.isIncludeAllEdgeRefs() || fetchHints.isIncludeInEdgeRefs() || fetchHints.isIncludeEdgeLabelsAndCounts() || fetchHints.hasEdgeLabelsOfEdgeRefsToInclude()) { columnFamiliesToFetch.add(AccumuloVertex.CF_IN_EDGE); columnFamiliesToFetch.add(AccumuloVertex.CF_IN_EDGE_HIDDEN); columnFamiliesToFetch.add(AccumuloVertex.CF_IN_EDGE_SOFT_DELETE); if (fetchHints.isIncludeAllEdgeRefs() || fetchHints.isIncludeOutEdgeRefs() || fetchHints.isIncludeEdgeLabelsAndCounts() || fetchHints.hasEdgeLabelsOfEdgeRefsToInclude()) { columnFamiliesToFetch.add(AccumuloVertex.CF_OUT_EDGE); columnFamiliesToFetch.add(AccumuloVertex.CF_OUT_EDGE_HIDDEN); columnFamiliesToFetch.add(AccumuloVertex.CF_OUT_EDGE_SOFT_DELETE); if (fetchHints.isIncludeProperties()) { columnFamiliesToFetch.add(AccumuloElement.CF_PROPERTY); columnFamiliesToFetch.add(AccumuloElement.CF_PROPERTY_HIDDEN); columnFamiliesToFetch.add(AccumuloElement.CF_PROPERTY_SOFT_DELETE); if (fetchHints.isIncludePropertyMetadata()) { columnFamiliesToFetch.add(AccumuloElement.CF_PROPERTY_METADATA); columnFamiliesToFetch.add(AccumuloElement.CF_PROPERTY_HIDDEN); columnFamiliesToFetch.add(AccumuloElement.CF_PROPERTY_SOFT_DELETE); if (fetchHints.isIncludeExtendedDataTableNames()) { columnFamiliesToFetch.add(AccumuloElement.CF_EXTENDED_DATA);
public void validateHasEdgeFetchHints(Direction direction, String... labels) { if (!isIncludeEdgeRefs()) { throw new VertexiumMissingFetchHintException(this, "edgeRefs"); } switch (direction) { case OUT: if (!isIncludeOutEdgeRefs() && !hasEdgeLabelsOfEdgeRefsToInclude()) { throw new VertexiumMissingFetchHintException(this, "outEdgeRefs or edgeLabels"); } break; case IN: if (!isIncludeInEdgeRefs() && !hasEdgeLabelsOfEdgeRefsToInclude()) { throw new VertexiumMissingFetchHintException(this, "inEdgeRefs or edgeLabels"); } break; } if (labels != null && labels.length != 0 && !isIncludeAllEdgeRefs() && !isIncludeInEdgeRefs() && !isIncludeOutEdgeRefs() && (getEdgeLabelsOfEdgeRefsToInclude() != null && getEdgeLabelsOfEdgeRefsToInclude().size() > 0)) { for (String label : labels) { if (!getEdgeLabelsOfEdgeRefsToInclude().contains(label)) { throw new VertexiumMissingFetchHintException(this, "edgeLabel:" + label); } } } }
public boolean isIncludeEdgeRefs() { return isIncludeAllEdgeRefs() || isIncludeInEdgeRefs() || isIncludeOutEdgeRefs() || (getEdgeLabelsOfEdgeRefsToInclude() != null && getEdgeLabelsOfEdgeRefsToInclude().size() > 0); }
private Iterable<Map.Entry<Text, org.vertexium.accumulo.iterator.model.EdgeInfo>> getEdgeInfos(Direction direction) { if (!getFetchHints().isIncludeEdgeRefs()) { throw new VertexiumException("getEdgeInfos called without including any edge infos"); } switch (direction) { case IN: if (!getFetchHints().isIncludeInEdgeRefs() && !getFetchHints().hasEdgeLabelsOfEdgeRefsToInclude()) { return null; } if (this.inEdges instanceof EdgesWithEdgeInfo) { return ((EdgesWithEdgeInfo) this.inEdges).getEntries(); } throw new VertexiumException("Cannot get edge info"); case OUT: if (!getFetchHints().isIncludeOutEdgeRefs() && !getFetchHints().hasEdgeLabelsOfEdgeRefsToInclude()) { return null; } if (this.outEdges instanceof EdgesWithEdgeInfo) { return ((EdgesWithEdgeInfo) this.outEdges).getEntries(); } throw new VertexiumException("Cannot get edge info"); case BOTH: return new JoinIterable<>(getEdgeInfos(Direction.IN), getEdgeInfos(Direction.OUT)); default: throw new VertexiumException("Unexpected direction: " + direction); } }
@Override public ImmutableSet<String> getExtendedDataTableNames() { if (!getFetchHints().isIncludeExtendedDataTableNames()) { throw new VertexiumMissingFetchHintException(getFetchHints(), "includeExtendedDataTableNames"); } return extendedDataTableNames; }
protected boolean isIncludedInTimeSpan( InMemoryTableElement element, FetchHints fetchHints, Long endTime, Authorizations authorizations ) { boolean includeHidden = fetchHints.isIncludeHidden(); if (!element.canRead(authorizations)) { return false; } if (!includeHidden && element.isHidden(authorizations)) { return false; } if (element.isDeleted(endTime, authorizations)) { return false; } if (endTime != null && element.getFirstTimestamp() > endTime) { return false; } return true; }
public boolean isIncludeMetadata(String metadataKey) { if (isIncludeAllPropertyMetadata()) { return true; } if (getMetadataKeysToInclude() != null && getMetadataKeysToInclude().contains(metadataKey)) { return true; } return false; }