Class Sql<C,​P,​Q extends Sql<C,​P,​Q>>

java.lang.Object
io.datarouter.storage.sql.Sql<C,​P,​Q>

public abstract class Sql<C,​P,​Q extends Sql<C,​P,​Q>>
extends java.lang.Object
  • Field Summary

    Fields 
    Modifier and Type Field Description
    protected Q implementation  
    protected java.util.ArrayList<java.util.function.BiConsumer<P,​java.lang.Integer>> parameterSetters  
    protected java.lang.StringBuilder sqlBuilder  
  • Constructor Summary

    Constructors 
    Modifier Constructor Description
    protected Sql​(java.lang.Class<Q> subclass)  
  • Method Summary

    Modifier and Type Method Description
    Q addDeleteFromClause​(java.lang.String tableName)  
    Q addForceIndexClause​(java.lang.String indexName)  
    abstract Q addLimitOffsetClause​(Config config)  
    Q addOrderByClause​(java.util.List<io.datarouter.model.field.Field<?>> orderByFields)  
    Q addSelectFromClause​(java.lang.String tableName, java.util.List<io.datarouter.model.field.Field<?>> selectFields)  
    abstract Q addSqlNameValueWithOperator​(io.datarouter.model.field.Field<?> field, java.lang.String operator, boolean rejectNulls)  
    Q addUpdateClause​(java.lang.String tableName)  
    Q append​(java.lang.String value)  
    abstract Q appendColumnEqualsValueParameter​(io.datarouter.model.field.Field<?> field)  
    Q appendParameter​(java.lang.String value, java.util.function.BiConsumer<P,​java.lang.Integer> parameterSetter)  
    Q appendSqlNameValue​(io.datarouter.model.field.Field<?> field, boolean rejectNulls)  
    Q appendWhereClauseDisjunction​(java.util.Collection<? extends io.datarouter.model.field.FieldSet<?>> fieldSets)  
    Q deleteAll​(Config config, java.lang.String tableName)  
    Q deleteMulti​(java.lang.String tableName, Config config, java.util.Collection<? extends io.datarouter.model.field.FieldSet<?>> keys)  
    <T extends io.datarouter.model.field.FieldSet<T>>
    Q
    getInRanges​(java.lang.String tableName, Config config, java.util.List<io.datarouter.model.field.Field<?>> selectFields, java.lang.Iterable<io.datarouter.util.tuple.Range<T>> ranges, java.util.List<io.datarouter.model.field.Field<?>> orderByFields, java.lang.String indexName)  
    Q getMulti​(java.lang.String tableName, Config config, java.util.List<io.datarouter.model.field.Field<?>> selectFields, java.util.Collection<? extends io.datarouter.model.field.FieldSet<?>> keys, java.lang.String indexName)  
    Q getWithPrefixes​(java.lang.String tableName, Config config, java.lang.String indexName, java.util.List<io.datarouter.model.field.Field<?>> selectFields, java.util.Collection<? extends io.datarouter.model.field.FieldSet<?>> keys, java.util.List<io.datarouter.model.field.Field<?>> orderByFields)  
    Q insert​(java.lang.String tableName, java.util.List<java.util.List<io.datarouter.model.field.Field<?>>> databeans, boolean ignore)  
    static boolean needsRangeWhereClause​(io.datarouter.model.field.FieldSet<?> start, io.datarouter.model.field.FieldSet<?> end)  
    abstract P prepare​(C connection)  
    java.lang.String toString()  
    Q update​(java.lang.String tableName, java.util.List<io.datarouter.model.field.Field<?>> fieldsToUpdate, java.util.List<? extends io.datarouter.model.field.FieldSet<?>> keys)  

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

    • implementation

      protected final Q extends Sql<C,​P,​Q> implementation
    • sqlBuilder

      protected final java.lang.StringBuilder sqlBuilder
    • parameterSetters

      protected final java.util.ArrayList<java.util.function.BiConsumer<P,​java.lang.Integer>> parameterSetters
  • Constructor Details

    • Sql

      protected Sql​(java.lang.Class<Q> subclass)
  • Method Details

    • addLimitOffsetClause

      public abstract Q addLimitOffsetClause​(Config config)
    • addSqlNameValueWithOperator

      public abstract Q addSqlNameValueWithOperator​(io.datarouter.model.field.Field<?> field, java.lang.String operator, boolean rejectNulls)
    • appendColumnEqualsValueParameter

      public abstract Q appendColumnEqualsValueParameter​(io.datarouter.model.field.Field<?> field)
    • prepare

      public abstract P prepare​(C connection)
    • appendSqlNameValue

      public Q appendSqlNameValue​(io.datarouter.model.field.Field<?> field, boolean rejectNulls)
    • append

      public Q append​(java.lang.String value)
    • appendParameter

      public Q appendParameter​(java.lang.String value, java.util.function.BiConsumer<P,​java.lang.Integer> parameterSetter)
    • insert

      public Q insert​(java.lang.String tableName, java.util.List<java.util.List<io.datarouter.model.field.Field<?>>> databeans, boolean ignore)
    • update

      public Q update​(java.lang.String tableName, java.util.List<io.datarouter.model.field.Field<?>> fieldsToUpdate, java.util.List<? extends io.datarouter.model.field.FieldSet<?>> keys)
    • deleteMulti

      public Q deleteMulti​(java.lang.String tableName, Config config, java.util.Collection<? extends io.datarouter.model.field.FieldSet<?>> keys)
    • getMulti

      public Q getMulti​(java.lang.String tableName, Config config, java.util.List<io.datarouter.model.field.Field<?>> selectFields, java.util.Collection<? extends io.datarouter.model.field.FieldSet<?>> keys, java.lang.String indexName)
    • getWithPrefixes

      public Q getWithPrefixes​(java.lang.String tableName, Config config, java.lang.String indexName, java.util.List<io.datarouter.model.field.Field<?>> selectFields, java.util.Collection<? extends io.datarouter.model.field.FieldSet<?>> keys, java.util.List<io.datarouter.model.field.Field<?>> orderByFields)
    • getInRanges

      public <T extends io.datarouter.model.field.FieldSet<T>> Q getInRanges​(java.lang.String tableName, Config config, java.util.List<io.datarouter.model.field.Field<?>> selectFields, java.lang.Iterable<io.datarouter.util.tuple.Range<T>> ranges, java.util.List<io.datarouter.model.field.Field<?>> orderByFields, java.lang.String indexName)
    • appendWhereClauseDisjunction

      public Q appendWhereClauseDisjunction​(java.util.Collection<? extends io.datarouter.model.field.FieldSet<?>> fieldSets)
    • deleteAll

      public Q deleteAll​(Config config, java.lang.String tableName)
    • addForceIndexClause

      public Q addForceIndexClause​(java.lang.String indexName)
    • addSelectFromClause

      public Q addSelectFromClause​(java.lang.String tableName, java.util.List<io.datarouter.model.field.Field<?>> selectFields)
    • addDeleteFromClause

      public Q addDeleteFromClause​(java.lang.String tableName)
    • addUpdateClause

      public Q addUpdateClause​(java.lang.String tableName)
    • needsRangeWhereClause

      public static boolean needsRangeWhereClause​(io.datarouter.model.field.FieldSet<?> start, io.datarouter.model.field.FieldSet<?> end)
    • addOrderByClause

      public Q addOrderByClause​(java.util.List<io.datarouter.model.field.Field<?>> orderByFields)
    • toString

      public java.lang.String toString()
      Overrides:
      toString in class java.lang.Object