private short getAdapterId(final String coverageName) { return geowaveInternalAdapterStore.getAdapterId(coverageName); } }
public Short getAdapterId(final String typeName) { return internalAdapterStore.getAdapterId(typeName); }
private String createDefaultAdapterTypeName( final String typeName, final DataStorePluginOptions storeOptions) { String defaultAdapterName = typeName + "_joined"; final InternalAdapterStore adapterStore = storeOptions.createInternalAdapterStore(); if (adapterStore.getAdapterId(defaultAdapterName) == null) { return defaultAdapterName; } Integer iSuffix = 0; String uniNum = "_" + String.format("%02d", iSuffix); defaultAdapterName = defaultAdapterName + uniNum; while (adapterStore.getAdapterId(defaultAdapterName) != null) { // Should be _00 _01 etc iSuffix += 1; uniNum = "_" + String.format("%02d", iSuffix); defaultAdapterName = defaultAdapterName + uniNum; } return defaultAdapterName; }
private Short getAdapterIdInternal(final String typeName) { // first try to get it from the job context Short internalAdapterId = getAdapterIdFromJobContext(typeName); if (internalAdapterId == null) { // then try to get it from the persistent store internalAdapterId = persistentInternalAdapterStore.getAdapterId(typeName); } if (internalAdapterId != null) { cache.put(typeName, internalAdapterId); } return internalAdapterId; }
private DataTypeAdapter<?> getAdapterInternal(final String typeName) { // first try to get it from the job context DataTypeAdapter<?> adapter = getDataAdapter(context, typeName); if (adapter == null) { // then try to get it from the persistent store adapter = persistentAdapterStore.getAdapter(internalAdapterStore.getAdapterId(typeName)); } if (adapter != null) { adapterCache.put(typeName, adapter); } return adapter; }
@Override public InternalDataAdapter<?> apply(final DataTypeAdapter<?> adapter) { if (adapter instanceof InternalDataAdapter) { return (InternalDataAdapter<?>) adapter; } return new InternalDataAdapterWrapper<>( adapter, internalAdapterStore.getAdapterId(adapter.getTypeName())); } }));
private Index[] getIndicesForAdapter( final DataStorePluginOptions storeOptions, final String typeName, final InternalAdapterStore internalAdapterStore, final IndexStore indexStore) { return storeOptions.createAdapterIndexMappingStore().getIndicesForAdapter( internalAdapterStore.getAdapterId(typeName)).getIndices(indexStore); }
public static DataTypeAdapter getDataAdapter( final DataStorePluginOptions dataStore, final String typeName) { final Short adapterId = dataStore.createInternalAdapterStore().getAdapterId(typeName); if (adapterId == null) { return null; } final DataTypeAdapter adapter = dataStore.createAdapterStore().getAdapter(adapterId); if (adapter == null) { return null; } return adapter; }
@Override public Index[] getIndices(final String typeName) { if (typeName == null) { final List<Index> indexList = new ArrayList<>(); try (CloseableIterator<Index> indexIt = indexStore.getIndices()) { while (indexIt.hasNext()) { indexList.add(indexIt.next()); } return indexList.toArray(new Index[0]); } } final Short internalAdapterId = internalAdapterStore.getAdapterId(typeName); if (internalAdapterId == null) { LOGGER.warn("Unable to find adapter '" + typeName + "' for indices"); return new Index[0]; } final AdapterToIndexMapping indices = indexMappingStore.getIndicesForAdapter(internalAdapterId); return indices.getIndices(indexStore); }
public static SimpleFeatureType getFeatureType( final DataStorePluginOptions dataStore, String typeName) { // if no id provided, locate a single featureadapter if (typeName == null) { final List<String> typeNameList = FeatureDataUtils.getFeatureTypeNames(dataStore); if (typeNameList.size() >= 1) { typeName = typeNameList.get(0); } else if (typeNameList.isEmpty()) { LOGGER.error("No feature adapters found for use with time param"); return null; } else { LOGGER.error("Multiple feature adapters found. Please specify one."); return null; } } final PersistentAdapterStore adapterStore = dataStore.createAdapterStore(); final InternalAdapterStore internalAdapterStore = dataStore.createInternalAdapterStore(); final DataTypeAdapter<?> adapter = adapterStore.getAdapter(internalAdapterStore.getAdapterId(typeName)).getAdapter(); if ((adapter != null) && (adapter instanceof GeotoolsFeatureDataAdapter)) { final GeotoolsFeatureDataAdapter gtAdapter = (GeotoolsFeatureDataAdapter) adapter; return gtAdapter.getFeatureType(); } return null; }
private GeotoolsFeatureDataAdapter getAdapter(final String typeName) { final GeotoolsFeatureDataAdapter featureAdapter; final short adapterId = internalAdapterStore.getAdapterId(typeName); final InternalDataAdapter<?> adapter = adapterStore.getAdapter(adapterId); if ((adapter == null) || !(adapter.getAdapter() instanceof GeotoolsFeatureDataAdapter)) { return null; } featureAdapter = (GeotoolsFeatureDataAdapter) adapter.getAdapter(); if (featureNameSpaceURI != null) { if (adapter.getAdapter() instanceof FeatureDataAdapter) { ((FeatureDataAdapter) featureAdapter).setNamespace(featureNameSpaceURI.toString()); } } return featureAdapter; }
private InternalDataAdapter<?> getAdapter(final PropertyManagement runTimeProperties) throws Exception { final PersistentAdapterStore adapterStore = super.getAdapterStore(runTimeProperties); final InternalAdapterStore internalAdapterStore = getInternalAdapterStore(runTimeProperties); Short sampleInternalAdapterId = internalAdapterStore.getAdapterId( runTimeProperties.getPropertyAsString( SampleParameters.Sample.DATA_TYPE_NAME, "sample")); if (sampleInternalAdapterId == null) { return null; } return adapterStore.getAdapter(sampleInternalAdapterId); }
public void initForWrite() { // this is ensuring the adapter is properly initialized with the // indicies and writing it to the adapterStore, in cases where the // featuredataadapter was created from geotools datastore's createSchema if (adapter instanceof InitializeWithIndicesDataAdapter) { ((InitializeWithIndicesDataAdapter) adapter).init(adapterIndices); } final short internalAdapterId = gtStore.getInternalAdapterStore().getAdapterId(adapter.getTypeName()); final InternalDataAdapter<?> internalDataAdapter = new InternalDataAdapterWrapper(adapter, internalAdapterId); gtStore.adapterStore.addAdapter(internalDataAdapter); }
@Override public void removeIndex(final String typeName, final String indexName) throws IllegalStateException { // First make sure the adapter exists and that this is not the only // index left for the given adapter. If it is, we should throw an // exception. final short adapterId = internalAdapterStore.getAdapterId(typeName); final AdapterToIndexMapping adapterIndexMap = indexMappingStore.getIndicesForAdapter(adapterId); if (adapterIndexMap == null) { throw new IllegalArgumentException( "No adapter with typeName " + typeName + "could be found."); } final String[] indexNames = adapterIndexMap.getIndexNames(); if (indexNames.length == 1) { throw new IllegalStateException("Index removal failed. Adapters require at least one index."); } // Remove all the data for the adapter and index baseOperations.deleteAll(indexName, typeName, adapterId); // If this is the last adapter/type associated with the index, then we // can remove the actual index too. final Short[] adapters = getAdaptersForIndex(indexName); if (adapters.length == 1) { indexStore.removeIndex(indexName); } // Finally, remove the mapping indexMappingStore.remove(adapterId, indexName); }
@Override @SuppressWarnings("unchecked") public Map<StatisticsId, InternalDataStatistics<SimpleFeature, ?, ?>> getDataStatistics() { final Map<StatisticsId, InternalDataStatistics<SimpleFeature, ?, ?>> stats = new HashMap<>(); final GeotoolsFeatureDataAdapter adapter = components.getAdapter(); final short internalAdapterId = components.getGTstore().getInternalAdapterStore().getAdapterId(adapter.getTypeName()); try (CloseableIterator<InternalDataStatistics<?, ?, ?>> it = components.getStatsStore().getDataStatistics(internalAdapterId, composeAuthorizations())) { while (it.hasNext()) { final InternalDataStatistics<?, ?, ?> stat = it.next(); stats.put( new StatisticsId(stat.getType(), stat.getExtendedId()), (InternalDataStatistics<SimpleFeature, ?, ?>) stat); } } catch (final Exception e) { GeoWaveTransactionManagement.LOGGER.error("Failed to access statistics from data store", e); } return stats; } }
protected InternalDataAdapter<?> getAdapter( final PropertyManagement runTimeProperties, final ParameterEnum dataTypeEnum, final ParameterEnum dataNameSpaceEnum) throws Exception { final String projectionDataTypeId = runTimeProperties.storeIfEmpty(dataTypeEnum, "convex_hull").toString(); final PersistentAdapterStore adapterStore = getAdapterStore(runTimeProperties); final InternalAdapterStore internalAdapterStore = getInternalAdapterStore(runTimeProperties); final Short convexHullInternalAdapterId = internalAdapterStore.getAdapterId(projectionDataTypeId); if (convexHullInternalAdapterId == null) { final String namespaceURI = runTimeProperties.storeIfEmpty( dataNameSpaceEnum, BasicFeatureTypes.DEFAULT_NAMESPACE).toString(); final FeatureDataAdapter adapter = AnalyticFeature.createGeometryFeatureAdapter( projectionDataTypeId, new String[0], namespaceURI, ClusteringUtils.CLUSTERING_CRS); final short internalAdapterId = internalAdapterStore.addTypeName(adapter.getTypeName()); final InternalDataAdapter<?> internalAdapter = new InternalDataAdapterWrapper<>(adapter, internalAdapterId); adapterStore.addAdapter(internalAdapter); return internalAdapter; } return adapterStore.getAdapter(convexHullInternalAdapterId); }
public static String getGeomField(final DataStorePluginOptions dataStore, final String typeName) { final PersistentAdapterStore adapterStore = dataStore.createAdapterStore(); final InternalAdapterStore internalAdapterStore = dataStore.createInternalAdapterStore(); final DataTypeAdapter<?> adapter = adapterStore.getAdapter(internalAdapterStore.getAdapterId(typeName)).getAdapter(); if ((adapter != null) && (adapter instanceof GeotoolsFeatureDataAdapter)) { final GeotoolsFeatureDataAdapter gtAdapter = (GeotoolsFeatureDataAdapter) adapter; final SimpleFeatureType featureType = gtAdapter.getFeatureType(); if (featureType.getGeometryDescriptor() != null) { return featureType.getGeometryDescriptor().getLocalName(); } } return null; }
protected Index[] getIndicesForAdapter( final GeotoolsFeatureDataAdapter adapter, final boolean spatialOnly) { Index[] currentSelections = preferredIndexes.get(adapter.getFeatureType().getName().toString()); if (currentSelections != null) { return filterIndices(currentSelections, spatialOnly); } final short internalAdapterId = internalAdapterStore.getAdapterId(adapter.getTypeName()); final AdapterToIndexMapping adapterIndexMapping = adapterIndexMappingStore.getIndicesForAdapter(internalAdapterId); if ((adapterIndexMapping != null) && adapterIndexMapping.isNotEmpty()) { currentSelections = adapterIndexMapping.getIndices(indexStore); } else { currentSelections = getPreferredIndices(adapter); } preferredIndexes.put(adapter.getFeatureType().getName().toString(), currentSelections); return filterIndices(currentSelections, spatialOnly); }
@Override public void removeType(final String typeName) { // Removing a type requires removing the data associated with the type, // the index mapping for the type, and we also need to remove stats for // the type. final Short adapterId = internalAdapterStore.getAdapterId(typeName); if (adapterId != -1) { final AdapterToIndexMapping mapping = indexMappingStore.getIndicesForAdapter(adapterId); final String[] indexNames = mapping.getIndexNames(); // remove all the data for each index paired to this adapter for (int i = 0; i < indexNames.length; i++) { baseOperations.deleteAll(indexNames[i], typeName, adapterId); } statisticsStore.removeAllStatistics(adapterId); indexMappingStore.remove(adapterId); internalAdapterStore.remove(adapterId); adapterStore.removeAdapter(adapterId); } }
public static String getTimeField(final DataStorePluginOptions dataStore, final String typeName) { final PersistentAdapterStore adapterStore = dataStore.createAdapterStore(); final InternalAdapterStore internalAdapterStore = dataStore.createInternalAdapterStore(); final DataTypeAdapter<?> adapter = adapterStore.getAdapter(internalAdapterStore.getAdapterId(typeName)).getAdapter(); if ((adapter != null) && (adapter instanceof GeotoolsFeatureDataAdapter)) { final GeotoolsFeatureDataAdapter gtAdapter = (GeotoolsFeatureDataAdapter) adapter; final SimpleFeatureType featureType = gtAdapter.getFeatureType(); final TimeDescriptors timeDescriptors = gtAdapter.getTimeDescriptors(); // If not indexed, try to find a time field if ((timeDescriptors == null) || !timeDescriptors.hasTime()) { for (final AttributeDescriptor attrDesc : featureType.getAttributeDescriptors()) { final Class<?> bindingClass = attrDesc.getType().getBinding(); if (TimeUtils.isTemporal(bindingClass)) { return attrDesc.getLocalName(); } } } else { if (timeDescriptors.getTime() != null) { return timeDescriptors.getTime().getLocalName(); } else if (timeDescriptors.getStartRange() != null) { // give back start|stop string return timeDescriptors.getStartRange().getLocalName() + "|" + timeDescriptors.getEndRange().getLocalName(); } } } return null; }