info.archinnov.achilles.generated.meta.entity.EntitySensor_AchillesMeta Maven / Gradle / Ivy
package info.archinnov.achilles.generated.meta.entity;
import com.datastax.driver.core.ClusteringOrder;
import com.datastax.driver.core.ConsistencyLevel;
import com.datastax.driver.core.DataType;
import com.google.common.collect.BiMap;
import com.google.common.collect.HashBiMap;
import com.google.common.reflect.TypeToken;
import info.archinnov.achilles.generated.function.Double_Type;
import info.archinnov.achilles.generated.function.Long_Type;
import info.archinnov.achilles.generated.function.SensorType_Type;
import info.archinnov.achilles.internals.apt.annotations.AchillesMeta;
import info.archinnov.achilles.internals.codec.EnumNameCodec;
import info.archinnov.achilles.internals.codec.FallThroughCodec;
import info.archinnov.achilles.internals.entities.EntitySensor;
import info.archinnov.achilles.internals.metamodel.AbstractEntityProperty;
import info.archinnov.achilles.internals.metamodel.AbstractProperty;
import info.archinnov.achilles.internals.metamodel.SimpleProperty;
import info.archinnov.achilles.internals.metamodel.columns.ClusteringColumnInfo;
import info.archinnov.achilles.internals.metamodel.columns.ColumnInfo;
import info.archinnov.achilles.internals.metamodel.columns.ColumnType;
import info.archinnov.achilles.internals.metamodel.columns.FieldInfo;
import info.archinnov.achilles.internals.metamodel.columns.PartitionKeyInfo;
import info.archinnov.achilles.internals.metamodel.index.IndexInfo;
import info.archinnov.achilles.internals.strategy.naming.InternalNamingStrategy;
import info.archinnov.achilles.type.strategy.InsertStrategy;
import java.lang.Class;
import java.lang.Double;
import java.lang.Integer;
import java.lang.Long;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
/**
* Meta class of all entities of type EntitySensor
* The meta class is responsible for
*
* - determining runtime consistency levels (read/write,serial)
* - determining runtime insert strategy
* - trigger event interceptors (if any)
* - map a com.datastax.driver.core.Row back to an instance of EntitySensor
* - determine runtime keyspace name using static annotations and runtime SchemaNameProvider (if any)
* - determine runtime table name using static annotations and runtime SchemaNameProvider (if any)
* - generate schema during bootstrap
* - validate schema during bootstrap
* - expose all property meta classes for encoding/decoding purpose on unitary columns
*
*/
@AchillesMeta
public final class EntitySensor_AchillesMeta extends AbstractEntityProperty {
/**
* Meta class for 'sensorId' property
* The meta class exposes some useful methods:
* - encodeFromJava: encode a property from raw Java to CQL java compatible type
* - encodeField: extract the current property value from the given EntitySensor instance and encode to CQL java compatible type
* - decodeFromGettable: decode from a {@link com.datastax.driver.core.GettableData} instance (Row, UDTValue, TupleValue) the current property
*
*/
@SuppressWarnings({"serial", "unchecked"})
public static final SimpleProperty sensorId = new SimpleProperty(new FieldInfo<>((EntitySensor entity$) -> entity$.getSensorId(), (EntitySensor entity$, Long value$) -> entity$.setSensorId(value$), "sensorId", "sensor_id", ColumnType.PARTITION, new PartitionKeyInfo(1, false), IndexInfo.noIndex()), DataType.bigint(), gettableData$ -> gettableData$.get("sensor_id", java.lang.Long.class), (settableData$, value$) -> settableData$.set("sensor_id", value$, java.lang.Long.class), new TypeToken(){}, new TypeToken(){}, new FallThroughCodec<>(Long.class));
/**
* Meta class for 'date' property
* The meta class exposes some useful methods:
* - encodeFromJava: encode a property from raw Java to CQL java compatible type
* - encodeField: extract the current property value from the given EntitySensor instance and encode to CQL java compatible type
* - decodeFromGettable: decode from a {@link com.datastax.driver.core.GettableData} instance (Row, UDTValue, TupleValue) the current property
*
*/
@SuppressWarnings({"serial", "unchecked"})
public static final SimpleProperty date = new SimpleProperty(new FieldInfo<>((EntitySensor entity$) -> entity$.getDate(), (EntitySensor entity$, Long value$) -> entity$.setDate(value$), "date", "date", ColumnType.CLUSTERING, new ClusteringColumnInfo(1, false, ClusteringOrder.ASC), IndexInfo.noIndex()), DataType.bigint(), gettableData$ -> gettableData$.get("date", java.lang.Long.class), (settableData$, value$) -> settableData$.set("date", value$, java.lang.Long.class), new TypeToken(){}, new TypeToken(){}, new FallThroughCodec<>(Long.class));
/**
* Meta class for 'type' property
* The meta class exposes some useful methods:
* - encodeFromJava: encode a property from raw Java to CQL java compatible type
* - encodeField: extract the current property value from the given EntitySensor instance and encode to CQL java compatible type
* - decodeFromGettable: decode from a {@link com.datastax.driver.core.GettableData} instance (Row, UDTValue, TupleValue) the current property
*
*/
@SuppressWarnings({"serial", "unchecked"})
public static final SimpleProperty type = new SimpleProperty(new FieldInfo<>((EntitySensor entity$) -> entity$.getType(), (EntitySensor entity$, EntitySensor.SensorType value$) -> entity$.setType(value$), "type", "type", ColumnType.NORMAL, new ColumnInfo(false), IndexInfo.noIndex()), DataType.text(), gettableData$ -> gettableData$.get("type", java.lang.String.class), (settableData$, value$) -> settableData$.set("type", value$, java.lang.String.class), new TypeToken(){}, new TypeToken(){}, new EnumNameCodec<>(java.util.Arrays.asList(EntitySensor.SensorType.values()), EntitySensor.SensorType.class));
/**
* Meta class for 'value' property
* The meta class exposes some useful methods:
* - encodeFromJava: encode a property from raw Java to CQL java compatible type
* - encodeField: extract the current property value from the given EntitySensor instance and encode to CQL java compatible type
* - decodeFromGettable: decode from a {@link com.datastax.driver.core.GettableData} instance (Row, UDTValue, TupleValue) the current property
*
*/
@SuppressWarnings({"serial", "unchecked"})
public static final SimpleProperty value = new SimpleProperty(new FieldInfo<>((EntitySensor entity$) -> entity$.getValue(), (EntitySensor entity$, Double value$) -> entity$.setValue(value$), "value", "value", ColumnType.NORMAL, new ColumnInfo(false), IndexInfo.noIndex()), DataType.cdouble(), gettableData$ -> gettableData$.get("value", java.lang.Double.class), (settableData$, value$) -> settableData$.set("value", value$, java.lang.Double.class), new TypeToken(){}, new TypeToken(){}, new FallThroughCodec<>(Double.class));
/**
* Static class to expose "EntitySensor_AchillesMeta" fields for type-safe function calls */
public static final EntitySensor_AchillesMeta.ColumnsForFunctions COLUMNS = new EntitySensor_AchillesMeta.ColumnsForFunctions();
;
@Override
protected Class getEntityClass() {
return EntitySensor.class;
}
@Override
protected String getDerivedTableOrViewName() {
return "entity_sensor";
}
@Override
protected BiMap fieldNameToCqlColumn() {
BiMap map = HashBiMap.create(4);
map.put("sensorId", "sensor_id");
map.put("date", "date");
map.put("type", "type");
map.put("value", "value");
return map;
}
@Override
protected Optional getStaticReadConsistency() {
return Optional.empty();
}
@Override
protected Optional getStaticNamingStrategy() {
return Optional.of(new info.archinnov.achilles.internals.strategy.naming.SnakeCaseNaming());
}
@Override
protected List> getPartitionKeys() {
return Arrays.asList(sensorId);
}
@Override
protected List> getClusteringColumns() {
return Arrays.asList(date);
}
@Override
protected List> getNormalColumns() {
return Arrays.asList(type,value);
}
@Override
protected List> getComputedColumns() {
return Arrays.asList();
}
@Override
protected boolean isCounterTable() {
return false;
}
@Override
protected Optional getStaticKeyspace() {
return Optional.empty();
}
@Override
protected Optional getStaticTableOrViewName() {
return Optional.of("sensor");
}
@Override
protected Optional getStaticWriteConsistency() {
return Optional.empty();
}
@Override
protected Optional getStaticSerialConsistency() {
return Optional.empty();
}
@Override
protected Optional getStaticTTL() {
return Optional.empty();
}
@Override
protected Optional getStaticInsertStrategy() {
return Optional.of(InsertStrategy.ALL_FIELDS);
}
@Override
protected List> getStaticColumns() {
return Arrays.asList();
}
@Override
protected List> getCounterColumns() {
return Arrays.asList();
}
/**
* Utility class to expose all fields with their CQL type for function call */
public static final class ColumnsForFunctions {
/**
*
* Field to be used for manager.dsl().select().function(...) call
*
* This is an alias for the field "sensorId" */
public final Long_Type SENSOR_ID = new Long_Type(Optional.empty()){
@Override
protected String cqlColumn() {
return "sensor_id";
}
@Override
public boolean isFunctionCall() {
return false;
}
}
;
/**
*
* Field to be used for manager.dsl().select().function(...) call
*
* This is an alias for the field "date" */
public final Long_Type DATE = new Long_Type(Optional.empty()){
@Override
protected String cqlColumn() {
return "date";
}
@Override
public boolean isFunctionCall() {
return false;
}
}
;
/**
*
* Field to be used for manager.dsl().select().function(...) call
*
* This is an alias for the field "type" */
public final SensorType_Type TYPE = new SensorType_Type(Optional.empty()){
@Override
protected String cqlColumn() {
return "type";
}
@Override
public boolean isFunctionCall() {
return false;
}
}
;
/**
*
* Field to be used for manager.dsl().select().function(...) call
*
* This is an alias for the field "value" */
public final Double_Type VALUE = new Double_Type(Optional.empty()){
@Override
protected String cqlColumn() {
return "value";
}
@Override
public boolean isFunctionCall() {
return false;
}
}
;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy