CloseableIterator<GeoWaveMetadata> originalResults; Iterator<GeoWaveMetadata> resultsIt; if (query.hasPrimaryId()) { if (query.hasSecondaryId()) { originalResults = table.iterator(query.getPrimaryId(), query.getSecondaryId()); resultsIt = originalResults; } else { originalResults = table.iterator(query.getPrimaryId()); resultsIt = originalResults; resultsIt = originalResults; if (query.hasPrimaryId() || query.hasSecondaryId()) { resultsIt = Iterators.filter(resultsIt, new Predicate<GeoWaveMetadata>() { final CloseableIterator<GeoWaveMetadata> retVal = new CloseableIteratorWrapper<>(originalResults, resultsIt); return isStats ? new StatisticsRowIterator(retVal, query.getAuthorizations()) : retVal;
protected CloseableIterator<T> getObjects(final String... authorizations) { return internalGetObjects(new MetadataQuery(null, null, authorizations)); }
@Override public boolean apply(final GeoWaveMetadata input) { if (query.hasPrimaryId() && !startsWith(input.getPrimaryId(), query.getPrimaryId())) { return false; } if (query.hasSecondaryId() && !Arrays.equals(input.getSecondaryId(), query.getSecondaryId())) { return false; } return true; } });
typeStore.subSet( new MemoryMetadataEntry( new GeoWaveMetadata(query.getPrimaryId(), query.getSecondaryId(), null, null), null), new MemoryMetadataEntry( new GeoWaveMetadata( getNextPrefix(query.getPrimaryId()), getNextPrefix(query.getSecondaryId()), (byte) 0xFF})); Iterator<MemoryMetadataEntry> it = set.iterator(); if ((query.getAuthorizations() != null) && (query.getAuthorizations().length > 0)) { it = Iterators.filter(it, new Predicate<MemoryMetadataEntry>() { @Override
final QueryRequest queryRequest = new QueryRequest(tableName); if (metadata.hasSecondaryId()) { queryRequest.withFilterExpression( DynamoDBOperations.METADATA_SECONDARY_ID_KEY + " = :secVal").addExpressionAttributeValuesEntry( ":secVal", new AttributeValue().withB(ByteBuffer.wrap(metadata.getSecondaryId()))); + " = :priVal").addExpressionAttributeValuesEntry( ":priVal", new AttributeValue().withB(ByteBuffer.wrap(metadata.getPrimaryId())));
@Override public boolean delete(final MetadataQuery query) { // the nature of metadata deleter is that primary ID is always // well-defined and it is deleting a single entry at a time TableName tableName = operations.getTableName(operations.getMetadataTableName(metadataType)); try { BufferedMutator deleter = operations.getBufferedMutator(tableName); Delete delete = new Delete(query.getPrimaryId()); delete.addColumns(StringUtils.stringToBinary(metadataType.name()), query.getSecondaryId()); deleter.mutate(delete); deleter.close(); return true; } catch (IOException e) { LOGGER.error("Error deleting metadata", e); } return false; }
@Override public boolean apply(final MemoryMetadataEntry input) { return MemoryStoreUtils.isAuthorized( input.getMetadata().getVisibility(), query.getAuthorizations()); } });
private String[] getSelectedColumns(final MetadataQuery query) { if (query.hasPrimaryId()) { if (useSecondaryId(query)) { return new String[] {CassandraMetadataWriter.VALUE_KEY}; } return new String[] { CassandraMetadataWriter.SECONDARY_ID_KEY, CassandraMetadataWriter.VALUE_KEY}; } if (useSecondaryId(query)) { return new String[] { CassandraMetadataWriter.PRIMARY_ID_KEY, CassandraMetadataWriter.VALUE_KEY}; } return new String[] { CassandraMetadataWriter.PRIMARY_ID_KEY, CassandraMetadataWriter.SECONDARY_ID_KEY, CassandraMetadataWriter.VALUE_KEY}; }
private boolean useSecondaryId(final MetadataQuery query) { return !MetadataType.STATS.equals(metadataType) || query.hasSecondaryId(); } }
protected CloseableIterator<T> internalGetObjects(final MetadataQuery query) { try { if (!operations.metadataExists(getType())) { return new CloseableIterator.Empty<>(); } } catch (final IOException e1) { LOGGER.error("Unable to check for existence of metadata to get objects", e1); return new CloseableIterator.Empty<>(); } final MetadataReader reader = operations.createMetadataReader(getType()); final CloseableIterator<GeoWaveMetadata> it = reader.query(query); return new NativeIteratorWrapper(it, query.getAuthorizations()); }
@Override public boolean apply(final GeoWaveMetadata input) { if (query.hasPrimaryId() && !startsWith(input.getPrimaryId(), query.getPrimaryId())) { return false; } if (query.hasSecondaryId() && !Arrays.equals(input.getSecondaryId(), query.getSecondaryId())) { return false; } return true; } });
protected CloseableIterator<T> getAllObjectsWithSecondaryId( final ByteArray secondaryId, final String... authorizations) { return internalGetObjects(new MetadataQuery(null, secondaryId.getBytes(), authorizations)); }
new MetadataQuery( ByteArrayUtils.shortToByteArray(adapterId), INTERNAL_TO_EXTERNAL_ID))) {
@Override public boolean delete(final MetadataQuery query) { final Delete delete = operations.getDelete(operations.getMetadataTableName(metadataType)); if (query.hasPrimaryId()) { final Where where = delete.where( QueryBuilder.eq( CassandraMetadataWriter.PRIMARY_ID_KEY, ByteBuffer.wrap(query.getPrimaryId()))); if (query.hasSecondaryId()) { where.and( QueryBuilder.eq( CassandraMetadataWriter.SECONDARY_ID_KEY, ByteBuffer.wrap(query.getSecondaryId()))); } } // deleting by secondary ID without primary ID is not supported (and not // directly supported by cassandra, we'd have top query first to get // primary ID(s) and then delete, but this is not a use case necessary // at the moment operations.getSession().execute(delete); return true; }
new MetadataQuery(StringUtils.stringToBinary(typeName), EXTERNAL_TO_INTERNAL_ID))) { if (!it.hasNext()) { if (warnIfNotExist) {
final boolean mergeStats) { Iterable<GeoWaveMetadata> results; if (query.getPrimaryId() != null) { if (query.getPrimaryId().length > 6) { final double score = RedisUtils.getScore(query.getPrimaryId()); results = set.valueRange(score, true, score, true); } else { RedisUtils.getScore(query.getPrimaryId()), true, RedisUtils.getScore(ByteArrayUtils.getNextPrefix(query.getPrimaryId())), false); results = set; if (query.hasPrimaryId() || query.hasSecondaryId()) { results = Iterables.filter(results, new Predicate<GeoWaveMetadata>() { retVal = new CloseableIterator.Wrapper<>(results.iterator()); return isStats ? new StatisticsRowIterator(retVal, query.getAuthorizations()) : retVal;
@Override public String[] getTypeNames() { final MetadataReader reader = getReader(false); if (reader == null) { return new String[0]; } final CloseableIterator<GeoWaveMetadata> results = reader.query(new MetadataQuery(null, INTERNAL_TO_EXTERNAL_ID)); try (CloseableIterator<String> it = new CloseableIteratorWrapper<>( results, Iterators.transform( results, input -> StringUtils.stringFromBinary(input.getValue())))) { return Iterators.toArray(it, String.class); } }
if (query.hasPrimaryId()) { final Where where = select.where( QueryBuilder.eq( CassandraMetadataWriter.PRIMARY_ID_KEY, ByteBuffer.wrap(query.getPrimaryId()))); if (query.hasSecondaryId()) { where.and( QueryBuilder.eq( CassandraMetadataWriter.SECONDARY_ID_KEY, ByteBuffer.wrap(query.getSecondaryId()))); } else if (query.hasSecondaryId()) { select.allowFiltering().where( QueryBuilder.eq( CassandraMetadataWriter.SECONDARY_ID_KEY, ByteBuffer.wrap(query.getSecondaryId()))); ? new StatisticsRowIterator(retVal, query.getAuthorizations()) : retVal;
@Override public short[] getAdapterIds() { final MetadataReader reader = getReader(false); if (reader == null) { return new short[0]; } final CloseableIterator<GeoWaveMetadata> results = reader.query(new MetadataQuery(null, EXTERNAL_TO_INTERNAL_ID)); try (CloseableIterator<Short> it = new CloseableIteratorWrapper<>( results, Iterators.transform( results, input -> ByteArrayUtils.byteArrayToShort(input.getValue())))) { return ArrayUtils.toPrimitive(Iterators.toArray(it, Short.class)); } } }
final byte[] columnQualifier = query.getSecondaryId(); if (query.hasPrimaryId()) { scanner.setStartRow(query.getPrimaryId()); scanner.setStopRow(query.getPrimaryId()); String[] additionalAuthorizations = query.getAuthorizations(); if ((additionalAuthorizations != null) && (additionalAuthorizations.length > 0)) { scanner.setAuthorizations(new Authorizations(additionalAuthorizations));