Example usage for org.apache.cassandra.serializers TypeSerializer deserialize

List of usage examples for org.apache.cassandra.serializers TypeSerializer deserialize

Introduction

In this page you can find the example usage for org.apache.cassandra.serializers TypeSerializer deserialize.

Prototype

public T deserialize(ByteBuffer bytes);

Source Link

Usage

From source file:com.impetus.client.cassandra.datahandler.CassandraDataHandlerBase.java

License:Apache License

/**
 * Populate embedded recursive./* ww w .ja  v a  2s.c  o  m*/
 * 
 * @param value
 *            the value
 * @param types
 *            the types
 * @param fieldNames
 *            the field names
 * @param entity
 *            the entity
 * @param metaModel
 *            the meta model
 * @return the object
 */
public Object populateEmbeddedRecursive(ByteBuffer value, List<AbstractType<?>> types,
        List<ByteBuffer> fieldNames, Object entity, MetamodelImpl metaModel) {
    ByteBuffer input = value.duplicate();
    EmbeddableType emb = metaModel.embeddable(entity.getClass());

    for (int i = 0; i < types.size(); i++) {

        if (!input.hasRemaining())
            return entity;

        AbstractType<?> type = types.get(i);
        String name = new String(fieldNames.get(i).array()); // JPA name,
                                                             // convert to
                                                             // column name

        Field fieldToSet = null;
        AbstractAttribute attribute = null;
        // change this if possible
        for (Object attr : emb.getAttributes()) {
            if (((AbstractAttribute) attr).getJPAColumnName().equals(name)) {
                attribute = (AbstractAttribute) attr;
                break;
            }
        }
        fieldToSet = (Field) attribute.getJavaMember();
        Class embeddedClass = attribute.getBindableJavaType();

        int size = input.getInt();
        if (size < 0) {
            continue;
        }

        ByteBuffer field = ByteBufferUtil.readBytes(input, size);

        if (type.getClass().getSimpleName().equals("UserType")) {
            List<ByteBuffer> subFieldNames = ((UserType) type).fieldNames();// ok
            List<AbstractType<?>> subfieldTypes = ((UserType) type).fieldTypes();

            // create entity with type_name and populate fields, set entity
            // in parent object after exit
            Object embeddedObjectChild = KunderaCoreUtils.createNewInstance(embeddedClass);

            Object processedEntity = populateEmbeddedRecursive(field, subfieldTypes, subFieldNames,
                    embeddedObjectChild, metaModel);
            PropertyAccessorHelper.set(entity, fieldToSet, processedEntity);
        } else {
            boolean flag = true;

            if (type.getClass().getSimpleName().equals("MapType")) {
                if (((MapType) type).getValuesType().getClass().getSimpleName().equals("UserType")) {
                    flag = false;
                    // create instance of embedded object (UserType)
                    setElementCollectionMap((MapType) type, field, entity, fieldToSet, metaModel, embeddedClass,
                            false);
                }
            } else if (type.getClass().getSimpleName().equals("ListType")) {
                if (((ListType) type).getElementsType().getClass().getSimpleName().equals("UserType")) {
                    flag = false;
                    setElementCollectionList((ListType) type, field, entity, fieldToSet, metaModel,
                            embeddedClass, false);
                }
            } else if (type.getClass().getSimpleName().equals("SetType")) {
                if (((SetType) type).getElementsType().getClass().getSimpleName().equals("UserType")) {
                    flag = false;
                    setElementCollectionSet((SetType) type, field, entity, fieldToSet, metaModel, embeddedClass,
                            false);
                }
            }
            if (flag) {
                TypeSerializer serializer = type.getSerializer();
                serializer.validate(field);

                Object finalValue = serializer.deserialize(field);
                PropertyAccessorHelper.set(entity, fieldToSet, finalValue);
            }

        }

    }
    return entity;
}

From source file:com.protectwise.cassandra.db.compaction.AbstractClusterDeletingConvictor.java

License:Apache License

public Long getLong(Composite ck, ColumnDefinition column) {
    TypeSerializer<?> ser = column.type.getSerializer();
    assert ser.getType() == Long.class : "Column '" + column.name + "' is not of type Long, but of type "
            + ser.getType().getSimpleName();
    return (Long) ser.deserialize(ck.get(column.position()));
}

From source file:com.protectwise.cassandra.db.compaction.AbstractClusterDeletingConvictor.java

License:Apache License

public Integer getInteger(Composite ck, ColumnDefinition column) {
    TypeSerializer<?> ser = column.type.getSerializer();
    assert ser.getType() == Integer.class : "Column '" + column.name + "' is not of type Integer, but of type "
            + ser.getType().getSimpleName();
    return (Integer) ser.deserialize(ck.get(column.position()));
}

From source file:com.protectwise.cassandra.db.compaction.AbstractClusterDeletingConvictor.java

License:Apache License

public String getString(Composite ck, ColumnDefinition column) {
    TypeSerializer<?> ser = column.type.getSerializer();
    assert ser.getType() == String.class : "Column '" + column.name + "' is not of type String, but of type "
            + ser.getType().getSimpleName();
    return (String) ser.deserialize(ck.get(column.position()));
}

From source file:com.protectwise.cassandra.db.compaction.AbstractClusterDeletingConvictor.java

License:Apache License

public Date getDate(Composite ck, ColumnDefinition column) {
    TypeSerializer<?> ser = column.type.getSerializer();
    assert ser.getType() == Date.class : "Column '" + column.name + "' is not of type Date, but of type "
            + ser.getType().getSimpleName();
    return (Date) ser.deserialize(ck.get(column.position()));
}

From source file:com.protectwise.cassandra.db.compaction.AbstractClusterDeletingConvictor.java

License:Apache License

public UUID getUUID(Composite ck, ColumnDefinition column) {
    TypeSerializer<?> ser = column.type.getSerializer();
    assert ser.getType() == UUID.class : "Column '" + column.name + "' is not of type UUID, but of type "
            + ser.getType().getSimpleName();
    return (UUID) ser.deserialize(ck.get(column.position()));
}

From source file:com.protectwise.cassandra.db.compaction.AbstractClusterDeletingConvictor.java

License:Apache License

public Double getDouble(Composite ck, ColumnDefinition column) {
    TypeSerializer<?> ser = column.type.getSerializer();
    assert ser.getType() == Double.class : "Column '" + column.name + "' is not of type Double, but of type "
            + ser.getType().getSimpleName();
    return (Double) ser.deserialize(ck.get(column.position()));
}

From source file:com.protectwise.cassandra.db.compaction.AbstractClusterDeletingConvictor.java

License:Apache License

public Boolean getBoolean(Composite ck, ColumnDefinition column) {
    TypeSerializer<?> ser = column.type.getSerializer();
    assert ser.getType() == Boolean.class : "Column '" + column.name + "' is not of type Boolean, but of type "
            + ser.getType().getSimpleName();
    return (Boolean) ser.deserialize(ck.get(column.position()));
}

From source file:com.protectwise.cassandra.db.compaction.AbstractClusterDeletingConvictor.java

License:Apache License

public BigDecimal getBigDecimal(Composite ck, ColumnDefinition column) {
    TypeSerializer<?> ser = column.type.getSerializer();
    assert ser.getType() == BigDecimal.class : "Column '" + column.name
            + "' is not of type BigDecimal, but of type " + ser.getType().getSimpleName();
    return (BigDecimal) ser.deserialize(ck.get(column.position()));
}

From source file:com.protectwise.cassandra.db.compaction.AbstractClusterDeletingConvictor.java

License:Apache License

public Float getFloat(Composite ck, ColumnDefinition column) {
    TypeSerializer<?> ser = column.type.getSerializer();
    assert ser.getType() == Float.class : "Column '" + column.name + "' is not of type Float, but of type "
            + ser.getType().getSimpleName();
    return (Float) ser.deserialize(ck.get(column.position()));
}