@Override public short addTypeName(final String typeName) { return persistentInternalAdapterStore.addTypeName(typeName); }
@Override public <T> void addType(final DataTypeAdapter<T> dataTypeAdapter, final Index... initialIndices) { // add internal adapter final InternalDataAdapter<T> adapter = new InternalDataAdapterWrapper<>( dataTypeAdapter, internalAdapterStore.addTypeName(dataTypeAdapter.getTypeName())); internalAddIndices(adapter, initialIndices, false); store(adapter); }
@Override public void createSchema(final SimpleFeatureType featureType) { if (featureType.getGeometryDescriptor() == null) { throw new UnsupportedOperationException("Schema missing geometry"); } final FeatureDataAdapter adapter = new FeatureDataAdapter(featureType, visibilityManagement); final short adapterId = internalAdapterStore.addTypeName(adapter.getTypeName()); if (!adapterStore.adapterExists(adapterId)) { // it is questionable whether createSchema *should* write the // adapter to the store, it is missing the proper index information // at this stage adapter.init(new SpatialDimensionalityTypeProvider().createIndex(new SpatialOptions())); if (featureNameSpaceURI != null) { adapter.setNamespace(featureNameSpaceURI.toString()); } final InternalDataAdapter<?> internalAdapter = new InternalDataAdapterWrapper(adapter, adapterId); adapterStore.addAdapter(internalAdapter); } }
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); }
store.addType(newAdapter, index); final short newInternalAdapterId = outputStoreOptions.createInternalAdapterStore().addTypeName(newAdapter.getTypeName());
private void internalAddIndices( final InternalDataAdapter<?> adapter, final Index[] indices, final boolean updateAdapter) { if (adapter.getAdapter() instanceof InitializeWithIndicesDataAdapter) { if (((InitializeWithIndicesDataAdapter) adapter.getAdapter()).init(indices) && updateAdapter) { adapterStore.removeAdapter(adapter.getAdapterId()); adapterStore.addAdapter(adapter); } } indexMappingStore.addAdapterIndexMapping( new AdapterToIndexMapping( internalAdapterStore.addTypeName(adapter.getTypeName()), indices)); for (final Index index : indices) { store(index); initOnIndexWriterCreate(adapter, index); } }