package com.alvazan.orm.impl.meta.data; import java.util.List; import com.alvazan.orm.api.z5api.NoSqlSession; import com.alvazan.orm.api.z5api.SpiMetaQuery; import com.alvazan.orm.api.z8spi.KeyValue; import com.alvazan.orm.api.z8spi.Row; import com.alvazan.orm.api.z8spi.meta.DboTableMeta; import com.alvazan.orm.api.z8spi.meta.IndexData; import com.alvazan.orm.api.z8spi.meta.RowToPersist; public interface MetaClass<T> { Class<T> getMetaClass(); String getColumnFamily(); MetaIdField<T> getIdField(); MetaTTLField <T> getTtlField(); boolean hasIndexedField(T entity); SpiMetaQuery getNamedQuery(Class<? extends T> clazz, String name); KeyValue<T> translateFromRow(Row row, NoSqlSession session); RowToPersist translateToRow(T entity); Object fetchId(T entity); //byte[] convertIdToNoSql(Object pk); List<IndexData> findIndexRemoves(NoSqlProxy proxy, byte[] rowKey); MetaField<T> getMetaFieldByCol(Class targetSubclass, String columnName); boolean isPartitioned(); DboTableMeta getMetaDbo(); }