All Downloads are FREE. Search and download functionalities are using the official Maven repository.

info.archinnov.achilles.generated.dsl.EntityWithUDTs_Update Maven / Gradle / Ivy

The newest version!
package info.archinnov.achilles.generated.dsl;

import com.datastax.driver.core.querybuilder.NonEscapingSetAssignment;
import com.datastax.driver.core.querybuilder.NotEq;
import com.datastax.driver.core.querybuilder.QueryBuilder;
import com.datastax.driver.core.querybuilder.Update;
import com.google.common.collect.Sets;
import info.archinnov.achilles.generated.meta.entity.EntityWithUDTs_AchillesMeta;
import info.archinnov.achilles.internals.dsl.query.update.AbstractUpdate;
import info.archinnov.achilles.internals.dsl.query.update.AbstractUpdateColumns;
import info.archinnov.achilles.internals.dsl.query.update.AbstractUpdateEnd;
import info.archinnov.achilles.internals.dsl.query.update.AbstractUpdateFrom;
import info.archinnov.achilles.internals.dsl.query.update.AbstractUpdateWhere;
import info.archinnov.achilles.internals.entities.EntityWithUDTs;
import info.archinnov.achilles.internals.entities.SimpleUDTWithNoKeyspace;
import info.archinnov.achilles.internals.metamodel.AbstractEntityProperty;
import info.archinnov.achilles.internals.options.CassandraOptions;
import info.archinnov.achilles.internals.runtime.RuntimeEngine;
import info.archinnov.achilles.type.SchemaNameProvider;
import info.archinnov.achilles.type.tuples.Tuple2;
import info.archinnov.achilles.validation.Validator;
import java.lang.Class;
import java.lang.Integer;
import java.lang.Long;
import java.lang.Object;
import java.lang.Override;
import java.lang.SuppressWarnings;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
import org.apache.commons.lang3.ArrayUtils;

public final class EntityWithUDTs_Update extends AbstractUpdate {
  protected final EntityWithUDTs_AchillesMeta meta;

  protected final Class entityClass = EntityWithUDTs.class;

  public EntityWithUDTs_Update(RuntimeEngine rte, EntityWithUDTs_AchillesMeta meta) {
    super(rte);
    this.meta = meta;
  }

  /**
   * Generate an UPDATE FROM ... */
  public final EntityWithUDTs_Update.F fromBaseTable() {
    final String currentKeyspace = meta.getKeyspace().orElse("unknown_keyspace_for_" + meta.entityClass.getCanonicalName());
    final Update.Where where = QueryBuilder.update(currentKeyspace, meta.getTableOrViewName()).where();
    return new EntityWithUDTs_Update.F(where, new CassandraOptions());
  }

  /**
   * Generate an UPDATE FROM ... using the given SchemaNameProvider */
  public final EntityWithUDTs_Update.F from(final SchemaNameProvider schemaNameProvider) {
    final String currentKeyspace = lookupKeyspace(schemaNameProvider, meta.entityClass);
    final String currentTable = lookupTable(schemaNameProvider, meta.entityClass);
    final Update.Where where = QueryBuilder.update(currentKeyspace, currentTable).where();
    return new EntityWithUDTs_Update.F(where, CassandraOptions.withSchemaNameProvider(schemaNameProvider));
  }

  public class Cols extends AbstractUpdateColumns {
    Cols(Update.Where where, CassandraOptions cassandraOptions) {
      super(where, cassandraOptions);
    }

    public final Cols.ListUDT listUDT() {
      return new Cols.ListUDT();
    }

    public final Cols.SetUDT setUDT() {
      return new Cols.SetUDT();
    }

    public final Cols.MapUDT mapUDT() {
      return new Cols.MapUDT();
    }

    public final Cols.OptionalUDT optionalUDT() {
      return new Cols.OptionalUDT();
    }

    public final Cols.TupleUDT tupleUDT() {
      return new Cols.TupleUDT();
    }

    public final EntityWithUDTs_Update.W_Id where() {
      return new EntityWithUDTs_Update.W_Id(where, cassandraOptions);
    }

    public final class ListUDT {
      /**
       * Generate an UPDATE FROM ... SET listudt = listudt + [?] */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.Cols AppendTo(final SimpleUDTWithNoKeyspace listUDT_element) {
        where.with(QueryBuilder.appendAll("listudt", QueryBuilder.bindMarker("listudt")));
        boundValues.add(Arrays.asList(listUDT_element));
        encodedValues.add(meta.listUDT.encodeFromJava(Arrays.asList(listUDT_element), Optional.of(cassandraOptions)));
        return EntityWithUDTs_Update.Cols.this;
      }

      /**
       * Generate an UPDATE FROM ... SET listUDT = listUDT + ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.Cols AppendAllTo(final List listUDT_element) {
        where.with(QueryBuilder.appendAll("listudt", QueryBuilder.bindMarker("listudt")));
        boundValues.add(listUDT_element);
        encodedValues.add(meta.listUDT.encodeFromJava(listUDT_element, Optional.of(cassandraOptions)));
        return EntityWithUDTs_Update.Cols.this;
      }

      /**
       * Generate an UPDATE FROM ... SET listUDT = [?] + listUDT */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.Cols PrependTo(final SimpleUDTWithNoKeyspace listUDT_element) {
        where.with(QueryBuilder.prependAll("listudt", QueryBuilder.bindMarker("listudt")));
        boundValues.add(Arrays.asList(listUDT_element));
        encodedValues.add(meta.listUDT.encodeFromJava(Arrays.asList(listUDT_element), Optional.of(cassandraOptions)));
        return EntityWithUDTs_Update.Cols.this;
      }

      /**
       * Generate an UPDATE FROM ... SET listUDT = ? + listUDT */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.Cols PrependAllTo(final List listUDT_element) {
        where.with(QueryBuilder.prependAll("listudt", QueryBuilder.bindMarker("listudt")));
        boundValues.add(listUDT_element);
        encodedValues.add(meta.listUDT.encodeFromJava(listUDT_element, Optional.of(cassandraOptions)));
        return EntityWithUDTs_Update.Cols.this;
      }

      /**
       * Generate an UPDATE FROM ... SET listUDT[index] = ? */
      public final EntityWithUDTs_Update.Cols SetAtIndex(final int index, final SimpleUDTWithNoKeyspace listUDT_element) {
        where.with(QueryBuilder.setIdx("listudt", index, QueryBuilder.bindMarker("listudt")));
        boundValues.add(listUDT_element);
        encodedValues.add(meta.listUDT.valueProperty.encodeFromJava(listUDT_element, Optional.of(cassandraOptions)));
        return EntityWithUDTs_Update.Cols.this;
      }

      /**
       * Generate an UPDATE FROM ... SET listUDT[index] = null */
      public final EntityWithUDTs_Update.Cols RemoveAtIndex(final int index) {
        where.with(QueryBuilder.setIdx("listudt", index, QueryBuilder.bindMarker("listudt")));
        boundValues.add(null);
        encodedValues.add(null);
        return EntityWithUDTs_Update.Cols.this;
      }

      /**
       * Generate an UPDATE FROM ... SET listUDT = listUDT - [?] */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.Cols RemoveFrom(final SimpleUDTWithNoKeyspace listUDT_element) {
        where.with(QueryBuilder.discardAll("listudt", QueryBuilder.bindMarker("listudt")));
        boundValues.add(Arrays.asList(listUDT_element));
        encodedValues.add(meta.listUDT.encodeFromJava(Arrays.asList(listUDT_element), Optional.of(cassandraOptions)));
        return EntityWithUDTs_Update.Cols.this;
      }

      /**
       * Generate an UPDATE FROM ... SET listUDT = listUDT - ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.Cols RemoveAllFrom(final List listUDT_element) {
        where.with(QueryBuilder.discardAll("listudt", QueryBuilder.bindMarker("listudt")));
        boundValues.add(listUDT_element);
        encodedValues.add(meta.listUDT.encodeFromJava(listUDT_element, Optional.of(cassandraOptions)));
        return EntityWithUDTs_Update.Cols.this;
      }

      /**
       * Generate an UPDATE FROM ... SET listUDT = ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.Cols Set(final List listUDT_element) {
        where.with(NonEscapingSetAssignment.of("listudt", QueryBuilder.bindMarker("listudt")));
        boundValues.add(listUDT_element);
        encodedValues.add(meta.listUDT.encodeFromJava(listUDT_element, Optional.of(cassandraOptions)));
        return EntityWithUDTs_Update.Cols.this;
      }
    }

    public final class SetUDT {
      /**
       * Generate an UPDATE FROM ... SET setudt = setudt + {?} */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.Cols AddTo(final SimpleUDTWithNoKeyspace setUDT_element) {
        where.with(QueryBuilder.addAll("setudt", QueryBuilder.bindMarker("setudt")));
        boundValues.add(Sets.newHashSet(setUDT_element));
        encodedValues.add(meta.setUDT.encodeFromJava(Sets.newHashSet(setUDT_element), Optional.of(cassandraOptions)));
        return EntityWithUDTs_Update.Cols.this;
      }

      /**
       * Generate an UPDATE FROM ... SET setUDT = setUDT + ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.Cols AddAllTo(final Set setUDT_element) {
        where.with(QueryBuilder.addAll("setudt", QueryBuilder.bindMarker("setudt")));
        boundValues.add(setUDT_element);
        encodedValues.add(meta.setUDT.encodeFromJava(setUDT_element, Optional.of(cassandraOptions)));
        return EntityWithUDTs_Update.Cols.this;
      }

      /**
       * Generate an UPDATE FROM ... SET setUDT = setUDT - {?} */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.Cols RemoveFrom(final SimpleUDTWithNoKeyspace setUDT_element) {
        where.with(QueryBuilder.removeAll("setudt", QueryBuilder.bindMarker("setudt")));
        boundValues.add(Sets.newHashSet(setUDT_element));
        encodedValues.add(meta.setUDT.encodeFromJava(Sets.newHashSet(setUDT_element), Optional.of(cassandraOptions)));
        return EntityWithUDTs_Update.Cols.this;
      }

      /**
       * Generate an UPDATE FROM ... SET setUDT = setUDT - ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.Cols RemoveAllFrom(final Set setUDT_element) {
        where.with(QueryBuilder.removeAll("setudt", QueryBuilder.bindMarker("setudt")));
        boundValues.add(setUDT_element);
        encodedValues.add(meta.setUDT.encodeFromJava(setUDT_element, Optional.of(cassandraOptions)));
        return EntityWithUDTs_Update.Cols.this;
      }

      /**
       * Generate an UPDATE FROM ... SET setUDT = ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.Cols Set(final Set setUDT_element) {
        where.with(NonEscapingSetAssignment.of("setudt", QueryBuilder.bindMarker("setudt")));
        boundValues.add(setUDT_element);
        encodedValues.add(meta.setUDT.encodeFromJava(setUDT_element, Optional.of(cassandraOptions)));
        return EntityWithUDTs_Update.Cols.this;
      }
    }

    public final class MapUDT {
      /**
       * Generate an UPDATE FROM ... SET mapudt[?] = ? */
      public final EntityWithUDTs_Update.Cols PutTo(final SimpleUDTWithNoKeyspace mapUDT_key, final SimpleUDTWithNoKeyspace mapUDT_value) {
        where.with(QueryBuilder.put("mapudt", QueryBuilder.bindMarker("mapUDT_key"), QueryBuilder.bindMarker("mapUDT_value")));
        boundValues.add(mapUDT_key);
        boundValues.add(mapUDT_value);
        encodedValues.add(meta.mapUDT.keyProperty.encodeFromJava(mapUDT_key, Optional.of(cassandraOptions)));
        encodedValues.add(meta.mapUDT.valueProperty.encodeFromJava(mapUDT_value, Optional.of(cassandraOptions)));
        return EntityWithUDTs_Update.Cols.this;
      }

      /**
       * Generate an UPDATE FROM ... SET mapUDT = mapUDT + ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.Cols AddAllTo(final Map mapUDT) {
        where.with(QueryBuilder.addAll("mapudt", QueryBuilder.bindMarker("mapudt")));
        boundValues.add(mapUDT);
        encodedValues.add(meta.mapUDT.encodeFromJava(mapUDT, Optional.of(cassandraOptions)));
        return EntityWithUDTs_Update.Cols.this;
      }

      /**
       * Generate an UPDATE FROM ... SET mapUDT[?] = null */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.Cols RemoveByKey(final SimpleUDTWithNoKeyspace mapUDT_key) {
        where.with(QueryBuilder.put("mapudt", QueryBuilder.bindMarker("mapUDT_key"), QueryBuilder.bindMarker("mapUDT_value")));
        boundValues.add(mapUDT_key);
        boundValues.add(null);
        encodedValues.add(meta.mapUDT.keyProperty.encodeFromJava(mapUDT_key, Optional.of(cassandraOptions)));
        encodedValues.add(null);
        return EntityWithUDTs_Update.Cols.this;
      }

      /**
       * Generate an UPDATE FROM ... SET mapUDT = ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.Cols Set(final Map mapUDT) {
        where.with(NonEscapingSetAssignment.of("mapudt", QueryBuilder.bindMarker("mapudt")));
        boundValues.add(mapUDT);
        encodedValues.add(meta.mapUDT.encodeFromJava(mapUDT, Optional.of(cassandraOptions)));
        return EntityWithUDTs_Update.Cols.this;
      }
    }

    public final class OptionalUDT {
      /**
       * Generate an UPDATE FROM ... SET optionaludt = ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.Cols Set(final Optional optionalUDT) {
        where.with(NonEscapingSetAssignment.of("optionaludt", QueryBuilder.bindMarker("optionaludt")));
        boundValues.add(optionalUDT);
        encodedValues.add(meta.optionalUDT.encodeFromJava(optionalUDT, Optional.of(cassandraOptions)));
        return EntityWithUDTs_Update.Cols.this;
      }
    }

    public final class TupleUDT {
      /**
       * Generate an UPDATE FROM ... SET tupleudt = ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.Cols Set(final Tuple2 tupleUDT) {
        where.with(NonEscapingSetAssignment.of("tupleudt", QueryBuilder.bindMarker("tupleudt")));
        boundValues.add(tupleUDT);
        encodedValues.add(meta.tupleUDT.encodeFromJava(tupleUDT, Optional.of(cassandraOptions)));
        return EntityWithUDTs_Update.Cols.this;
      }
    }
  }

  public class F extends AbstractUpdateFrom {
    F(Update.Where where, CassandraOptions cassandraOptions) {
      super(where, cassandraOptions);
    }

    public final F.ListUDT listUDT() {
      return new F.ListUDT();
    }

    public final F.SetUDT setUDT() {
      return new F.SetUDT();
    }

    public final F.MapUDT mapUDT() {
      return new F.MapUDT();
    }

    public final F.OptionalUDT optionalUDT() {
      return new F.OptionalUDT();
    }

    public final F.TupleUDT tupleUDT() {
      return new F.TupleUDT();
    }

    public final class ListUDT {
      /**
       * Generate an UPDATE FROM ... SET listudt = listudt + [?] */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.Cols AppendTo(final SimpleUDTWithNoKeyspace listUDT_element) {
        where.with(QueryBuilder.appendAll("listudt", QueryBuilder.bindMarker("listudt")));
        boundValues.add(Arrays.asList(listUDT_element));
        encodedValues.add(meta.listUDT.encodeFromJava(Arrays.asList(listUDT_element), Optional.of(cassandraOptions)));
        return new EntityWithUDTs_Update.Cols(where, cassandraOptions);
      }

      /**
       * Generate an UPDATE FROM ... SET listUDT = listUDT + ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.Cols AppendAllTo(final List listUDT_element) {
        where.with(QueryBuilder.appendAll("listudt", QueryBuilder.bindMarker("listudt")));
        boundValues.add(listUDT_element);
        encodedValues.add(meta.listUDT.encodeFromJava(listUDT_element, Optional.of(cassandraOptions)));
        return new EntityWithUDTs_Update.Cols(where, cassandraOptions);
      }

      /**
       * Generate an UPDATE FROM ... SET listUDT = [?] + listUDT */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.Cols PrependTo(final SimpleUDTWithNoKeyspace listUDT_element) {
        where.with(QueryBuilder.prependAll("listudt", QueryBuilder.bindMarker("listudt")));
        boundValues.add(Arrays.asList(listUDT_element));
        encodedValues.add(meta.listUDT.encodeFromJava(Arrays.asList(listUDT_element), Optional.of(cassandraOptions)));
        return new EntityWithUDTs_Update.Cols(where, cassandraOptions);
      }

      /**
       * Generate an UPDATE FROM ... SET listUDT = ? + listUDT */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.Cols PrependAllTo(final List listUDT_element) {
        where.with(QueryBuilder.prependAll("listudt", QueryBuilder.bindMarker("listudt")));
        boundValues.add(listUDT_element);
        encodedValues.add(meta.listUDT.encodeFromJava(listUDT_element, Optional.of(cassandraOptions)));
        return new EntityWithUDTs_Update.Cols(where, cassandraOptions);
      }

      /**
       * Generate an UPDATE FROM ... SET listUDT[index] = ? */
      public final EntityWithUDTs_Update.Cols SetAtIndex(final int index, final SimpleUDTWithNoKeyspace listUDT_element) {
        where.with(QueryBuilder.setIdx("listudt", index, QueryBuilder.bindMarker("listudt")));
        boundValues.add(listUDT_element);
        encodedValues.add(meta.listUDT.valueProperty.encodeFromJava(listUDT_element, Optional.of(cassandraOptions)));
        return new EntityWithUDTs_Update.Cols(where, cassandraOptions);
      }

      /**
       * Generate an UPDATE FROM ... SET listUDT[index] = null */
      public final EntityWithUDTs_Update.Cols RemoveAtIndex(final int index) {
        where.with(QueryBuilder.setIdx("listudt", index, QueryBuilder.bindMarker("listudt")));
        boundValues.add(null);
        encodedValues.add(null);
        return new EntityWithUDTs_Update.Cols(where, cassandraOptions);
      }

      /**
       * Generate an UPDATE FROM ... SET listUDT = listUDT - [?] */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.Cols RemoveFrom(final SimpleUDTWithNoKeyspace listUDT_element) {
        where.with(QueryBuilder.discardAll("listudt", QueryBuilder.bindMarker("listudt")));
        boundValues.add(Arrays.asList(listUDT_element));
        encodedValues.add(meta.listUDT.encodeFromJava(Arrays.asList(listUDT_element), Optional.of(cassandraOptions)));
        return new EntityWithUDTs_Update.Cols(where, cassandraOptions);
      }

      /**
       * Generate an UPDATE FROM ... SET listUDT = listUDT - ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.Cols RemoveAllFrom(final List listUDT_element) {
        where.with(QueryBuilder.discardAll("listudt", QueryBuilder.bindMarker("listudt")));
        boundValues.add(listUDT_element);
        encodedValues.add(meta.listUDT.encodeFromJava(listUDT_element, Optional.of(cassandraOptions)));
        return new EntityWithUDTs_Update.Cols(where, cassandraOptions);
      }

      /**
       * Generate an UPDATE FROM ... SET listUDT = ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.Cols Set(final List listUDT_element) {
        where.with(NonEscapingSetAssignment.of("listudt", QueryBuilder.bindMarker("listudt")));
        boundValues.add(listUDT_element);
        encodedValues.add(meta.listUDT.encodeFromJava(listUDT_element, Optional.of(cassandraOptions)));
        return new EntityWithUDTs_Update.Cols(where, cassandraOptions);
      }
    }

    public final class SetUDT {
      /**
       * Generate an UPDATE FROM ... SET setudt = setudt + {?} */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.Cols AddTo(final SimpleUDTWithNoKeyspace setUDT_element) {
        where.with(QueryBuilder.addAll("setudt", QueryBuilder.bindMarker("setudt")));
        boundValues.add(Sets.newHashSet(setUDT_element));
        encodedValues.add(meta.setUDT.encodeFromJava(Sets.newHashSet(setUDT_element), Optional.of(cassandraOptions)));
        return new EntityWithUDTs_Update.Cols(where, cassandraOptions);
      }

      /**
       * Generate an UPDATE FROM ... SET setUDT = setUDT + ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.Cols AddAllTo(final Set setUDT_element) {
        where.with(QueryBuilder.addAll("setudt", QueryBuilder.bindMarker("setudt")));
        boundValues.add(setUDT_element);
        encodedValues.add(meta.setUDT.encodeFromJava(setUDT_element, Optional.of(cassandraOptions)));
        return new EntityWithUDTs_Update.Cols(where, cassandraOptions);
      }

      /**
       * Generate an UPDATE FROM ... SET setUDT = setUDT - {?} */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.Cols RemoveFrom(final SimpleUDTWithNoKeyspace setUDT_element) {
        where.with(QueryBuilder.removeAll("setudt", QueryBuilder.bindMarker("setudt")));
        boundValues.add(Sets.newHashSet(setUDT_element));
        encodedValues.add(meta.setUDT.encodeFromJava(Sets.newHashSet(setUDT_element), Optional.of(cassandraOptions)));
        return new EntityWithUDTs_Update.Cols(where, cassandraOptions);
      }

      /**
       * Generate an UPDATE FROM ... SET setUDT = setUDT - ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.Cols RemoveAllFrom(final Set setUDT_element) {
        where.with(QueryBuilder.removeAll("setudt", QueryBuilder.bindMarker("setudt")));
        boundValues.add(setUDT_element);
        encodedValues.add(meta.setUDT.encodeFromJava(setUDT_element, Optional.of(cassandraOptions)));
        return new EntityWithUDTs_Update.Cols(where, cassandraOptions);
      }

      /**
       * Generate an UPDATE FROM ... SET setUDT = ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.Cols Set(final Set setUDT_element) {
        where.with(NonEscapingSetAssignment.of("setudt", QueryBuilder.bindMarker("setudt")));
        boundValues.add(setUDT_element);
        encodedValues.add(meta.setUDT.encodeFromJava(setUDT_element, Optional.of(cassandraOptions)));
        return new EntityWithUDTs_Update.Cols(where, cassandraOptions);
      }
    }

    public final class MapUDT {
      /**
       * Generate an UPDATE FROM ... SET mapudt[?] = ? */
      public final EntityWithUDTs_Update.Cols PutTo(final SimpleUDTWithNoKeyspace mapUDT_key, final SimpleUDTWithNoKeyspace mapUDT_value) {
        where.with(QueryBuilder.put("mapudt", QueryBuilder.bindMarker("mapUDT_key"), QueryBuilder.bindMarker("mapUDT_value")));
        boundValues.add(mapUDT_key);
        boundValues.add(mapUDT_value);
        encodedValues.add(meta.mapUDT.keyProperty.encodeFromJava(mapUDT_key, Optional.of(cassandraOptions)));
        encodedValues.add(meta.mapUDT.valueProperty.encodeFromJava(mapUDT_value, Optional.of(cassandraOptions)));
        return new EntityWithUDTs_Update.Cols(where, cassandraOptions);
      }

      /**
       * Generate an UPDATE FROM ... SET mapUDT = mapUDT + ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.Cols AddAllTo(final Map mapUDT) {
        where.with(QueryBuilder.addAll("mapudt", QueryBuilder.bindMarker("mapudt")));
        boundValues.add(mapUDT);
        encodedValues.add(meta.mapUDT.encodeFromJava(mapUDT, Optional.of(cassandraOptions)));
        return new EntityWithUDTs_Update.Cols(where, cassandraOptions);
      }

      /**
       * Generate an UPDATE FROM ... SET mapUDT[?] = null */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.Cols RemoveByKey(final SimpleUDTWithNoKeyspace mapUDT_key) {
        where.with(QueryBuilder.put("mapudt", QueryBuilder.bindMarker("mapUDT_key"), QueryBuilder.bindMarker("mapUDT_value")));
        boundValues.add(mapUDT_key);
        boundValues.add(null);
        encodedValues.add(meta.mapUDT.keyProperty.encodeFromJava(mapUDT_key, Optional.of(cassandraOptions)));
        encodedValues.add(null);
        return new EntityWithUDTs_Update.Cols(where, cassandraOptions);
      }

      /**
       * Generate an UPDATE FROM ... SET mapUDT = ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.Cols Set(final Map mapUDT) {
        where.with(NonEscapingSetAssignment.of("mapudt", QueryBuilder.bindMarker("mapudt")));
        boundValues.add(mapUDT);
        encodedValues.add(meta.mapUDT.encodeFromJava(mapUDT, Optional.of(cassandraOptions)));
        return new EntityWithUDTs_Update.Cols(where, cassandraOptions);
      }
    }

    public final class OptionalUDT {
      /**
       * Generate an UPDATE FROM ... SET optionaludt = ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.Cols Set(final Optional optionalUDT) {
        where.with(NonEscapingSetAssignment.of("optionaludt", QueryBuilder.bindMarker("optionaludt")));
        boundValues.add(optionalUDT);
        encodedValues.add(meta.optionalUDT.encodeFromJava(optionalUDT, Optional.of(cassandraOptions)));
        return new EntityWithUDTs_Update.Cols(where, cassandraOptions);
      }
    }

    public final class TupleUDT {
      /**
       * Generate an UPDATE FROM ... SET tupleudt = ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.Cols Set(final Tuple2 tupleUDT) {
        where.with(NonEscapingSetAssignment.of("tupleudt", QueryBuilder.bindMarker("tupleudt")));
        boundValues.add(tupleUDT);
        encodedValues.add(meta.tupleUDT.encodeFromJava(tupleUDT, Optional.of(cassandraOptions)));
        return new EntityWithUDTs_Update.Cols(where, cassandraOptions);
      }
    }
  }

  public final class W_Id extends AbstractUpdateWhere {
    public W_Id(Update.Where where, CassandraOptions cassandraOptions) {
      super(where, cassandraOptions);
    }

    public final EntityWithUDTs_Update.W_Id.Relation id() {
      return new EntityWithUDTs_Update.W_Id.Relation();
    }

    public final class Relation {
      /**
       * Generate a SELECT ... FROM ... WHERE ... id = ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.E Eq(Long id) {
        where.and(QueryBuilder.eq("id", QueryBuilder.bindMarker("id")));
        boundValues.add(id);
        encodedValues.add(meta.id.encodeFromJava(id, Optional.of(cassandraOptions)));
        return new EntityWithUDTs_Update.E(where, cassandraOptions);
      }

      /**
       * Generate a SELECT ... FROM ... WHERE ... id IN ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.E IN(Long... id) {
        Validator.validateTrue(ArrayUtils.isNotEmpty(id), "Varargs for field '%s' should not be null/empty", "id");
        where.and(QueryBuilder.in("id",QueryBuilder.bindMarker("id")));
        final List varargs = Arrays.asList((Object[])id);
        final List encodedVarargs = Arrays.stream((Long[])id).map(x -> meta.id.encodeFromJava(x, Optional.of(cassandraOptions))).collect(Collectors.toList());
        boundValues.add(varargs);
        encodedValues.add(encodedVarargs);
        return new EntityWithUDTs_Update.E(where, cassandraOptions);
      }
    }
  }

  public final class E extends AbstractUpdateEnd {
    public E(Update.Where where, CassandraOptions cassandraOptions) {
      super(where, cassandraOptions);
    }

    @Override
    protected final Class getEntityClass() {
      return entityClass;
    }

    @Override
    protected final AbstractEntityProperty getMetaInternal() {
      return meta;
    }

    @Override
    protected final RuntimeEngine getRte() {
      return rte;
    }

    @Override
    protected final CassandraOptions getOptions() {
      return cassandraOptions;
    }

    @Override
    protected final List getBoundValuesInternal() {
      return boundValues;
    }

    @Override
    protected final List getEncodedValuesInternal() {
      return encodedValues;
    }

    @Override
    protected final EntityWithUDTs_Update.E getThis() {
      return this;
    }

    public final E.If_ListUDT if_ListUDT() {
      return new E.If_ListUDT();
    }

    public final E.If_SetUDT if_SetUDT() {
      return new E.If_SetUDT();
    }

    public final E.If_MapUDT if_MapUDT() {
      return new E.If_MapUDT();
    }

    public final E.If_OptionalUDT if_OptionalUDT() {
      return new E.If_OptionalUDT();
    }

    public final E.If_TupleUDT if_TupleUDT() {
      return new E.If_TupleUDT();
    }

    public final class If_ListUDT {
      /**
       * Generate an ... IF listUDT = ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.E Eq(final List listUDT) {
        boundValues.add(listUDT);
        encodedValues.add(meta.listUDT.encodeFromJava(listUDT, Optional.of(cassandraOptions)));
        where.onlyIf(QueryBuilder.eq("listudt", QueryBuilder.bindMarker("listudt")));
        return EntityWithUDTs_Update.E.this;
      }

      /**
       * Generate an ... IF listUDT > ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.E Gt(final List listUDT) {
        boundValues.add(listUDT);
        encodedValues.add(meta.listUDT.encodeFromJava(listUDT, Optional.of(cassandraOptions)));
        where.onlyIf(QueryBuilder.gt("listudt", QueryBuilder.bindMarker("listudt")));
        return EntityWithUDTs_Update.E.this;
      }

      /**
       * Generate an ... IF listUDT >= ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.E Gte(final List listUDT) {
        boundValues.add(listUDT);
        encodedValues.add(meta.listUDT.encodeFromJava(listUDT, Optional.of(cassandraOptions)));
        where.onlyIf(QueryBuilder.gte("listudt", QueryBuilder.bindMarker("listudt")));
        return EntityWithUDTs_Update.E.this;
      }

      /**
       * Generate an ... IF listUDT < ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.E Lt(final List listUDT) {
        boundValues.add(listUDT);
        encodedValues.add(meta.listUDT.encodeFromJava(listUDT, Optional.of(cassandraOptions)));
        where.onlyIf(QueryBuilder.lt("listudt", QueryBuilder.bindMarker("listudt")));
        return EntityWithUDTs_Update.E.this;
      }

      /**
       * Generate an ... IF listUDT <= ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.E Lte(final List listUDT) {
        boundValues.add(listUDT);
        encodedValues.add(meta.listUDT.encodeFromJava(listUDT, Optional.of(cassandraOptions)));
        where.onlyIf(QueryBuilder.lte("listudt", QueryBuilder.bindMarker("listudt")));
        return EntityWithUDTs_Update.E.this;
      }

      /**
       * Generate an  ... IF listUDT != ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.E NotEq(final List listUDT) {
        boundValues.add(listUDT);
        encodedValues.add(meta.listUDT.encodeFromJava(listUDT, Optional.of(cassandraOptions)));
        where.onlyIf(NotEq.of("listudt", QueryBuilder.bindMarker("listudt")));
        return EntityWithUDTs_Update.E.this;
      }
    }

    public final class If_SetUDT {
      /**
       * Generate an ... IF setUDT = ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.E Eq(final Set setUDT) {
        boundValues.add(setUDT);
        encodedValues.add(meta.setUDT.encodeFromJava(setUDT, Optional.of(cassandraOptions)));
        where.onlyIf(QueryBuilder.eq("setudt", QueryBuilder.bindMarker("setudt")));
        return EntityWithUDTs_Update.E.this;
      }

      /**
       * Generate an ... IF setUDT > ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.E Gt(final Set setUDT) {
        boundValues.add(setUDT);
        encodedValues.add(meta.setUDT.encodeFromJava(setUDT, Optional.of(cassandraOptions)));
        where.onlyIf(QueryBuilder.gt("setudt", QueryBuilder.bindMarker("setudt")));
        return EntityWithUDTs_Update.E.this;
      }

      /**
       * Generate an ... IF setUDT >= ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.E Gte(final Set setUDT) {
        boundValues.add(setUDT);
        encodedValues.add(meta.setUDT.encodeFromJava(setUDT, Optional.of(cassandraOptions)));
        where.onlyIf(QueryBuilder.gte("setudt", QueryBuilder.bindMarker("setudt")));
        return EntityWithUDTs_Update.E.this;
      }

      /**
       * Generate an ... IF setUDT < ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.E Lt(final Set setUDT) {
        boundValues.add(setUDT);
        encodedValues.add(meta.setUDT.encodeFromJava(setUDT, Optional.of(cassandraOptions)));
        where.onlyIf(QueryBuilder.lt("setudt", QueryBuilder.bindMarker("setudt")));
        return EntityWithUDTs_Update.E.this;
      }

      /**
       * Generate an ... IF setUDT <= ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.E Lte(final Set setUDT) {
        boundValues.add(setUDT);
        encodedValues.add(meta.setUDT.encodeFromJava(setUDT, Optional.of(cassandraOptions)));
        where.onlyIf(QueryBuilder.lte("setudt", QueryBuilder.bindMarker("setudt")));
        return EntityWithUDTs_Update.E.this;
      }

      /**
       * Generate an  ... IF setUDT != ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.E NotEq(final Set setUDT) {
        boundValues.add(setUDT);
        encodedValues.add(meta.setUDT.encodeFromJava(setUDT, Optional.of(cassandraOptions)));
        where.onlyIf(NotEq.of("setudt", QueryBuilder.bindMarker("setudt")));
        return EntityWithUDTs_Update.E.this;
      }
    }

    public final class If_MapUDT {
      /**
       * Generate an ... IF mapUDT = ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.E Eq(final Map mapUDT) {
        boundValues.add(mapUDT);
        encodedValues.add(meta.mapUDT.encodeFromJava(mapUDT, Optional.of(cassandraOptions)));
        where.onlyIf(QueryBuilder.eq("mapudt", QueryBuilder.bindMarker("mapudt")));
        return EntityWithUDTs_Update.E.this;
      }

      /**
       * Generate an ... IF mapUDT > ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.E Gt(final Map mapUDT) {
        boundValues.add(mapUDT);
        encodedValues.add(meta.mapUDT.encodeFromJava(mapUDT, Optional.of(cassandraOptions)));
        where.onlyIf(QueryBuilder.gt("mapudt", QueryBuilder.bindMarker("mapudt")));
        return EntityWithUDTs_Update.E.this;
      }

      /**
       * Generate an ... IF mapUDT >= ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.E Gte(final Map mapUDT) {
        boundValues.add(mapUDT);
        encodedValues.add(meta.mapUDT.encodeFromJava(mapUDT, Optional.of(cassandraOptions)));
        where.onlyIf(QueryBuilder.gte("mapudt", QueryBuilder.bindMarker("mapudt")));
        return EntityWithUDTs_Update.E.this;
      }

      /**
       * Generate an ... IF mapUDT < ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.E Lt(final Map mapUDT) {
        boundValues.add(mapUDT);
        encodedValues.add(meta.mapUDT.encodeFromJava(mapUDT, Optional.of(cassandraOptions)));
        where.onlyIf(QueryBuilder.lt("mapudt", QueryBuilder.bindMarker("mapudt")));
        return EntityWithUDTs_Update.E.this;
      }

      /**
       * Generate an ... IF mapUDT <= ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.E Lte(final Map mapUDT) {
        boundValues.add(mapUDT);
        encodedValues.add(meta.mapUDT.encodeFromJava(mapUDT, Optional.of(cassandraOptions)));
        where.onlyIf(QueryBuilder.lte("mapudt", QueryBuilder.bindMarker("mapudt")));
        return EntityWithUDTs_Update.E.this;
      }

      /**
       * Generate an  ... IF mapUDT != ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.E NotEq(final Map mapUDT) {
        boundValues.add(mapUDT);
        encodedValues.add(meta.mapUDT.encodeFromJava(mapUDT, Optional.of(cassandraOptions)));
        where.onlyIf(NotEq.of("mapudt", QueryBuilder.bindMarker("mapudt")));
        return EntityWithUDTs_Update.E.this;
      }
    }

    public final class If_OptionalUDT {
      /**
       * Generate an ... IF optionalUDT = ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.E Eq(final Optional optionalUDT) {
        boundValues.add(optionalUDT);
        encodedValues.add(meta.optionalUDT.encodeFromJava(optionalUDT, Optional.of(cassandraOptions)));
        where.onlyIf(QueryBuilder.eq("optionaludt", QueryBuilder.bindMarker("optionaludt")));
        return EntityWithUDTs_Update.E.this;
      }

      /**
       * Generate an ... IF optionalUDT > ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.E Gt(final Optional optionalUDT) {
        boundValues.add(optionalUDT);
        encodedValues.add(meta.optionalUDT.encodeFromJava(optionalUDT, Optional.of(cassandraOptions)));
        where.onlyIf(QueryBuilder.gt("optionaludt", QueryBuilder.bindMarker("optionaludt")));
        return EntityWithUDTs_Update.E.this;
      }

      /**
       * Generate an ... IF optionalUDT >= ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.E Gte(final Optional optionalUDT) {
        boundValues.add(optionalUDT);
        encodedValues.add(meta.optionalUDT.encodeFromJava(optionalUDT, Optional.of(cassandraOptions)));
        where.onlyIf(QueryBuilder.gte("optionaludt", QueryBuilder.bindMarker("optionaludt")));
        return EntityWithUDTs_Update.E.this;
      }

      /**
       * Generate an ... IF optionalUDT < ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.E Lt(final Optional optionalUDT) {
        boundValues.add(optionalUDT);
        encodedValues.add(meta.optionalUDT.encodeFromJava(optionalUDT, Optional.of(cassandraOptions)));
        where.onlyIf(QueryBuilder.lt("optionaludt", QueryBuilder.bindMarker("optionaludt")));
        return EntityWithUDTs_Update.E.this;
      }

      /**
       * Generate an ... IF optionalUDT <= ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.E Lte(final Optional optionalUDT) {
        boundValues.add(optionalUDT);
        encodedValues.add(meta.optionalUDT.encodeFromJava(optionalUDT, Optional.of(cassandraOptions)));
        where.onlyIf(QueryBuilder.lte("optionaludt", QueryBuilder.bindMarker("optionaludt")));
        return EntityWithUDTs_Update.E.this;
      }

      /**
       * Generate an  ... IF optionalUDT != ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.E NotEq(final Optional optionalUDT) {
        boundValues.add(optionalUDT);
        encodedValues.add(meta.optionalUDT.encodeFromJava(optionalUDT, Optional.of(cassandraOptions)));
        where.onlyIf(NotEq.of("optionaludt", QueryBuilder.bindMarker("optionaludt")));
        return EntityWithUDTs_Update.E.this;
      }
    }

    public final class If_TupleUDT {
      /**
       * Generate an ... IF tupleUDT = ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.E Eq(final Tuple2 tupleUDT) {
        boundValues.add(tupleUDT);
        encodedValues.add(meta.tupleUDT.encodeFromJava(tupleUDT, Optional.of(cassandraOptions)));
        where.onlyIf(QueryBuilder.eq("tupleudt", QueryBuilder.bindMarker("tupleudt")));
        return EntityWithUDTs_Update.E.this;
      }

      /**
       * Generate an ... IF tupleUDT > ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.E Gt(final Tuple2 tupleUDT) {
        boundValues.add(tupleUDT);
        encodedValues.add(meta.tupleUDT.encodeFromJava(tupleUDT, Optional.of(cassandraOptions)));
        where.onlyIf(QueryBuilder.gt("tupleudt", QueryBuilder.bindMarker("tupleudt")));
        return EntityWithUDTs_Update.E.this;
      }

      /**
       * Generate an ... IF tupleUDT >= ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.E Gte(final Tuple2 tupleUDT) {
        boundValues.add(tupleUDT);
        encodedValues.add(meta.tupleUDT.encodeFromJava(tupleUDT, Optional.of(cassandraOptions)));
        where.onlyIf(QueryBuilder.gte("tupleudt", QueryBuilder.bindMarker("tupleudt")));
        return EntityWithUDTs_Update.E.this;
      }

      /**
       * Generate an ... IF tupleUDT < ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.E Lt(final Tuple2 tupleUDT) {
        boundValues.add(tupleUDT);
        encodedValues.add(meta.tupleUDT.encodeFromJava(tupleUDT, Optional.of(cassandraOptions)));
        where.onlyIf(QueryBuilder.lt("tupleudt", QueryBuilder.bindMarker("tupleudt")));
        return EntityWithUDTs_Update.E.this;
      }

      /**
       * Generate an ... IF tupleUDT <= ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.E Lte(final Tuple2 tupleUDT) {
        boundValues.add(tupleUDT);
        encodedValues.add(meta.tupleUDT.encodeFromJava(tupleUDT, Optional.of(cassandraOptions)));
        where.onlyIf(QueryBuilder.lte("tupleudt", QueryBuilder.bindMarker("tupleudt")));
        return EntityWithUDTs_Update.E.this;
      }

      /**
       * Generate an  ... IF tupleUDT != ? */
      @SuppressWarnings("static-access")
      public final EntityWithUDTs_Update.E NotEq(final Tuple2 tupleUDT) {
        boundValues.add(tupleUDT);
        encodedValues.add(meta.tupleUDT.encodeFromJava(tupleUDT, Optional.of(cassandraOptions)));
        where.onlyIf(NotEq.of("tupleudt", QueryBuilder.bindMarker("tupleudt")));
        return EntityWithUDTs_Update.E.this;
      }
    }
  }
}