Package org.datanucleus.store.cassandra
Class CassandraUtils
- java.lang.Object
-
- org.datanucleus.store.cassandra.CassandraUtils
-
public class CassandraUtils extends Object
Utility methods for handling Cassandra datastores.
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static String
getCassandraTypeForDatastoreType(String javaType)
static String
getCassandraTypeForNonPersistableType(Class type, boolean serialised, org.datanucleus.store.types.TypeManager typeMgr, String jdbcType, org.datanucleus.metadata.AbstractMemberMetaData mmd, org.datanucleus.metadata.FieldRole role, org.datanucleus.ClassLoaderResolver clr)
Convenience method to return the Cassandra type that we would store the provided type as.static Object
getDatastoreValueForNonPersistableValue(Object value, String datastoreType, boolean serialised, org.datanucleus.store.types.TypeManager typeMgr, org.datanucleus.metadata.AbstractMemberMetaData mmd, org.datanucleus.metadata.FieldRole role)
Convenience method to convert from a non-persistable value to the value to be stored in Cassandra.static Class
getJavaTypeForCassandraType(String cassandraType)
static Object
getJavaValueForDatastoreValue(Object datastoreValue, String cassandraType, Class javaType, org.datanucleus.ExecutionContext ec)
static Object
getMemberValueForColumnWithConverter(com.datastax.oss.driver.api.core.cql.Row row, org.datanucleus.store.schema.table.Column column, org.datanucleus.store.types.converters.TypeConverter typeConv)
static Object[]
getObjectArrayFromRow(org.datanucleus.store.types.TypeManager typeMgr, com.datastax.oss.driver.api.core.cql.Row row, com.datastax.oss.driver.api.core.cql.ColumnDefinitions columnDefinitions, List<Integer> fieldsMatchingColumnIndexes, int resultRowSize)
Convenience method to get Object[] from Cassandra Row.static Object
getPojoForRowForCandidate(com.datastax.oss.driver.api.core.cql.Row row, org.datanucleus.metadata.AbstractClassMetaData cmd, org.datanucleus.ExecutionContext ec, int[] fpMembers, boolean ignoreCache)
Method to take a ResultSet Row and convert it into a persistable object.static ResultClassInfo
getResultClassInfoFromColumnDefinitions(Class resultClazz, com.datastax.oss.driver.api.core.cql.ColumnDefinitions columnDefinitions)
Convenience method to generate a ResultClassInfo which holds members that would be used by QueryUtils.createResultObjectUsingDefaultConstructorAndSetters methodstatic void
logCqlStatement(String stmt, Object[] values, org.datanucleus.util.NucleusLogger logger)
Convenience method to log the provided CQL statement, substituting the provided parameters for any "?" in the statement
-
-
-
Method Detail
-
getCassandraTypeForDatastoreType
public static String getCassandraTypeForDatastoreType(String javaType)
-
getMemberValueForColumnWithConverter
public static Object getMemberValueForColumnWithConverter(com.datastax.oss.driver.api.core.cql.Row row, org.datanucleus.store.schema.table.Column column, org.datanucleus.store.types.converters.TypeConverter typeConv)
-
getJavaValueForDatastoreValue
public static Object getJavaValueForDatastoreValue(Object datastoreValue, String cassandraType, Class javaType, org.datanucleus.ExecutionContext ec)
-
getCassandraTypeForNonPersistableType
public static String getCassandraTypeForNonPersistableType(Class type, boolean serialised, org.datanucleus.store.types.TypeManager typeMgr, String jdbcType, org.datanucleus.metadata.AbstractMemberMetaData mmd, org.datanucleus.metadata.FieldRole role, org.datanucleus.ClassLoaderResolver clr)
Convenience method to return the Cassandra type that we would store the provided type as. Note that this does not support container (Collection, Map) types just single value types.- Parameters:
type
- The java typeserialised
- Whether it should be serialisedtypeMgr
- The type managerjdbcType
- Any jdbc-type that has been specified to take into accountmmd
- The field/property that this is forrole
- The role of the field that this value represents (i.e whole field, collection element, map key, etc)clr
- ClassLoader resolver- Returns:
- The Cassandra type
-
getDatastoreValueForNonPersistableValue
public static Object getDatastoreValueForNonPersistableValue(Object value, String datastoreType, boolean serialised, org.datanucleus.store.types.TypeManager typeMgr, org.datanucleus.metadata.AbstractMemberMetaData mmd, org.datanucleus.metadata.FieldRole role)
Convenience method to convert from a non-persistable value to the value to be stored in Cassandra.- Parameters:
value
- Value for the memberdatastoreType
- Cassandra column typeserialised
- Whether the value is to be stored serialisedtypeMgr
- Type Managermmd
- The field/property that this is forrole
- The role of the field that this value represents (i.e whole field, collection element, map key, etc)- Returns:
- The value to be stored
-
getPojoForRowForCandidate
public static Object getPojoForRowForCandidate(com.datastax.oss.driver.api.core.cql.Row row, org.datanucleus.metadata.AbstractClassMetaData cmd, org.datanucleus.ExecutionContext ec, int[] fpMembers, boolean ignoreCache)
Method to take a ResultSet Row and convert it into a persistable object.- Parameters:
row
- The results rowcmd
- Metadata for the class of which this is an instance (or subclass)ec
- ExecutionContext managing itfpMembers
- FetchPlan members to populateignoreCache
- Whether to ignore the cache when instantiating this- Returns:
- The persistable object for this row.
-
logCqlStatement
public static void logCqlStatement(String stmt, Object[] values, org.datanucleus.util.NucleusLogger logger)
Convenience method to log the provided CQL statement, substituting the provided parameters for any "?" in the statement- Parameters:
stmt
- The CQL statementvalues
- Any parameter valueslogger
- The logger to log to (at DEBUG level).
-
getResultClassInfoFromColumnDefinitions
public static ResultClassInfo getResultClassInfoFromColumnDefinitions(Class resultClazz, com.datastax.oss.driver.api.core.cql.ColumnDefinitions columnDefinitions)
Convenience method to generate a ResultClassInfo which holds members that would be used by QueryUtils.createResultObjectUsingDefaultConstructorAndSetters method- Parameters:
resultClazz
- Class type of result class.columnDefinitions
- Cassandra result column definitions.- Returns:
- ResultClassPojo
-
getObjectArrayFromRow
public static Object[] getObjectArrayFromRow(org.datanucleus.store.types.TypeManager typeMgr, com.datastax.oss.driver.api.core.cql.Row row, com.datastax.oss.driver.api.core.cql.ColumnDefinitions columnDefinitions, List<Integer> fieldsMatchingColumnIndexes, int resultRowSize)
Convenience method to get Object[] from Cassandra Row.- Parameters:
typeMgr
- TypeManagerrow
- Row returned from Cassandra drivercolumnDefinitions
- Cassandra result column definitions.fieldsMatchingColumnIndexes
- indices of ColumnDefinitions that match to a field of resultClassresultRowSize
- size of Object [] that is returned- Returns:
- Object[] of results
-
-