public IndexedAdapterPersistenceEncoding getAdapterEncoding(final DataTypeAdapter dataAdapter) { final PersistentDataset<Object> adapterExtendedValues = new PersistentDataset<>(); if (persistenceEncoding instanceof AbstractAdapterPersistenceEncoding) { ((AbstractAdapterPersistenceEncoding) persistenceEncoding).convertUnknownValues( dataAdapter, model); final PersistentDataset<Object> existingExtValues = ((AbstractAdapterPersistenceEncoding) persistenceEncoding).getAdapterExtendedData(); if (existingExtValues != null) { adapterExtendedValues.addValues(existingExtValues.getValues()); } } adapterEncoding = new IndexedAdapterPersistenceEncoding( persistenceEncoding.getInternalAdapterId(), persistenceEncoding.getDataId(), persistenceEncoding.getInsertionPartitionKey(), persistenceEncoding.getInsertionSortKey(), persistenceEncoding.getDuplicateCount(), persistenceEncoding.getCommonData(), new PersistentDataset<byte[]>(), adapterExtendedValues); return adapterEncoding; }
@Override protected Envelope getEnvelope(final CommonIndexedPersistenceEncoding entry) { final CommonIndexValue v = entry.getCommonData().getValue(GeometryWrapper.DEFAULT_GEOMETRY_FIELD_NAME); if ((v != null) && (v instanceof GeometryWrapper)) { return ((GeometryWrapper) v).getGeometry().getEnvelopeInternal(); } return null; } }
getNumericData(index.getIndexModel().getDimensions()); final InsertionIds untrimmedResult = index.getIndexStrategy().getInsertionIds(boxRangeData); for (final SinglePartitionInsertionIds insertionId : untrimmedResult.getPartitionKeys()) { && checkCoverage( boxRangeData, index.getIndexStrategy().getRangeForId(partitionKey, sortKey))) { "Index strategy produced an unmatching tile during encoding and storing an entry"); if (!overlaps( index.getIndexStrategy().getRangeForId(partitionKey, sortKey).getDataPerDimension(), index)) {
@Override public boolean accept( final CommonIndexModel indexModel, final IndexedPersistenceEncoding<?> persistenceEncoding) { if (!(persistenceEncoding instanceof CommonIndexedPersistenceEncoding)) { return false; } final List<BinnedNumericDataset> dataRanges = BinnedNumericDataset.applyBins( ((CommonIndexedPersistenceEncoding) persistenceEncoding).getNumericData( dimensionFields), dimensionFields); if (persistenceEncoding.isAsync()) { return false; } // check that at least one data range overlaps at least one query range for (final BinnedNumericDataset dataRange : dataRanges) { final List<MultiDimensionalNumericData> queries = binnedConstraints.get(new ByteArray(dataRange.getBinId())); if (queries != null) { for (final MultiDimensionalNumericData query : queries) { if ((query != null) && validateConstraints(compareOp, query, dataRange)) { return true; } } } } return false; }
final PersistentDataset<CommonIndexValue> commonData = getCommonData(); if (commonData != null) { final CommonIndexValue value = commonData.getValue(entry.getKey());
/** * Given an ordered set of dimensions, convert this persistent encoding common index data into a * MultiDimensionalNumericData object that can then be used by the Index * * @param dimensions * @return */ @SuppressWarnings({"rawtypes", "unchecked"}) public MultiDimensionalNumericData getNumericData(final NumericDimensionField[] dimensions) { final NumericData[] dataPerDimension = new NumericData[dimensions.length]; for (int d = 0; d < dimensions.length; d++) { final CommonIndexValue val = getCommonData().getValue(dimensions[d].getFieldName()); if (val != null) { dataPerDimension[d] = dimensions[d].getNumericData(val); } } return new BasicNumericDataset(dataPerDimension); }