private Publisher<?> executeInternal(Operation operation) {
      if (operation instanceof StandardOperations.Select) {
        return query((StandardOperations.Select) operation);
      } else if (operation instanceof StandardOperations.Insert) {
        return insert((StandardOperations.Insert) operation);
      } else if (operation instanceof StandardOperations.Update) {
        return update((StandardOperations.Update) operation);
      } else if (operation instanceof StandardOperations.Delete) {
        return delete((StandardOperations.Delete) operation);
      } else if (operation instanceof StandardOperations.DeleteByKey) {
        return deleteByKey((StandardOperations.DeleteByKey) operation);
      } else if (operation instanceof StandardOperations.GetByKey) {
        return getByKey((StandardOperations.GetByKey) operation);
      }

      return Flowable.error(new UnsupportedOperationException(String.format("Operation %s not supported", operation)));
    }
mapping between class and its store
criteria/inmemory/src/org/immutables/criteria/inmemory/InMemoryBackend.java