001package io.ebeanservice.docstore.none;
002
003import io.ebean.DocumentStore;
004import io.ebean.plugin.SpiServer;
005import io.ebeaninternal.server.deploy.BeanDescriptor;
006import io.ebeaninternal.server.deploy.meta.DeployBeanDescriptor;
007import io.ebeanservice.docstore.api.DocStoreBeanAdapter;
008import io.ebeanservice.docstore.api.DocStoreFactory;
009import io.ebeanservice.docstore.api.DocStoreIntegration;
010import io.ebeanservice.docstore.api.DocStoreUpdateProcessor;
011
012/**
013 * A stub implementation of DocStoreFactory that will barf if the docStore features are used.
014 */
015public class NoneDocStoreFactory implements DocStoreFactory {
016
017  @Override
018  public DocStoreIntegration create(SpiServer server) {
019    return new NoneIntegration();
020  }
021
022  @Override
023  public <T> DocStoreBeanAdapter<T> createAdapter(BeanDescriptor<T> desc, DeployBeanDescriptor<T> deploy) {
024    return new NoneDocStoreBeanAdapter<>(desc, deploy);
025  }
026
027  static class NoneIntegration implements DocStoreIntegration {
028
029    @Override
030    public DocStoreUpdateProcessor updateProcessor() {
031      return new NoneDocStoreUpdateProcessor();
032    }
033
034    @Override
035    public DocumentStore documentStore() {
036      return new NoneDocStore();
037    }
038  }
039}