List of usage examples for org.apache.cassandra.db.marshal InetAddressType fromString
public ByteBuffer fromString(String source) throws MarshalException
From source file:org.pentaho.cassandra.legacy.CassandraColumnMetaData.java
License:Apache License
/** * Static utility to decompose a Kettle value to a ByteBuffer. Note - does not check if the kettle value is null. * * @param vm/*from w ww . j a va 2 s . c o m*/ * the ValueMeta for the Kettle value * @param value * the actual Kettle value * @return a ByteBuffer encapsulating the bytes for the decomposed value * @throws KettleException * if a problem occurs */ public ByteBuffer kettleValueToByteBuffer(ValueMetaInterface vm, Object value, boolean isKey) throws KettleException { String fullTransCoder = m_defaultValidationClass; // check the key first if (isKey) { fullTransCoder = m_keyValidator; } else { fullTransCoder = m_columnMeta.get(vm.getName()); if (fullTransCoder == null) { // use default if not in column meta data fullTransCoder = m_defaultValidationClass; } } // we can safely strip off ReversedType, as the base type // is what we need in this case fullTransCoder = stripReversedTypeIfNecessary(fullTransCoder); String transCoder = fullTransCoder; // if it's a composite type make sure that we check only against the // primary type if (transCoder.indexOf('(') > 0) { transCoder = transCoder.substring(0, transCoder.indexOf('(')); } ByteBuffer decomposed = null; if (transCoder.indexOf("UTF8Type") > 0) { //$NON-NLS-1$ UTF8Type u = UTF8Type.instance; decomposed = u.decompose(vm.getString(value)); } else if (transCoder.indexOf("AsciiType") > 0) { //$NON-NLS-1$ AsciiType at = AsciiType.instance; decomposed = at.decompose(vm.getString(value)); } else if (transCoder.indexOf("InetAddressType") > 0) { //$NON-NLS-1$ InetAddressType it = InetAddressType.instance; decomposed = it.fromString(vm.getString(value)); } else if (transCoder.indexOf("LongType") > 0) { //$NON-NLS-1$ LongType lt = LongType.instance; decomposed = lt.decompose(vm.getInteger(value)); } else if (transCoder.indexOf("DoubleType") > 0) { //$NON-NLS-1$ DoubleType dt = DoubleType.instance; decomposed = dt.decompose(vm.getNumber(value)); } else if (transCoder.indexOf("DateType") > 0) { //$NON-NLS-1$ DateType dt = DateType.instance; decomposed = dt.decompose(vm.getDate(value)); } else if (transCoder.indexOf("TimestampType") > 0) { //$NON-NLS-1$ AbstractType<java.util.Date> tt = getTimestampType(); if (tt == null) { throw new KettleException(BaseMessages.getString(PKG, "CassandraColumnMetaData.Error.Cassandra1ClientAgainstCassandra2Server")); //$NON-NLS-1$ } decomposed = tt.decompose(vm.getDate(value)); } else if (transCoder.indexOf("IntegerType") > 0) { //$NON-NLS-1$ IntegerType it = IntegerType.instance; decomposed = it.decompose(vm.getBigNumber(value).toBigInteger()); } else if (transCoder.indexOf("CounterColumnType") > 0) { //$NON-NLS-1$ CounterColumnType cct = CounterColumnType.instance; decomposed = cct.decompose(vm.getInteger(value)); } else if (transCoder.indexOf("FloatType") > 0) { //$NON-NLS-1$ FloatType ft = FloatType.instance; decomposed = ft.decompose(vm.getNumber(value).floatValue()); } else if (transCoder.indexOf("LexicalUUIDType") > 0) { //$NON-NLS-1$ LexicalUUIDType lt = LexicalUUIDType.instance; UUID uuid = UUID.fromString((vm.getString(value))); decomposed = lt.decompose(uuid); } else if (transCoder.indexOf("UUIDType") > 0) { //$NON-NLS-1$ UUIDType ut = UUIDType.instance; UUID uuid = UUID.fromString((vm.getString(value))); decomposed = ut.decompose(uuid); } else if (transCoder.indexOf("BooleanType") > 0) { //$NON-NLS-1$ BooleanType bt = BooleanType.instance; decomposed = bt.decompose(vm.getBoolean(value)); } else if (transCoder.indexOf("Int32Type") > 0) { //$NON-NLS-1$ Int32Type it = Int32Type.instance; decomposed = it.decompose(vm.getInteger(value).intValue()); } else if (transCoder.indexOf("DecimalType") > 0) { //$NON-NLS-1$ DecimalType dt = DecimalType.instance; decomposed = dt.decompose(vm.getBigNumber(value)); } else if (transCoder.indexOf("BytesType") > 0) { //$NON-NLS-1$ BytesType bt = BytesType.instance; decomposed = bt.decompose(ByteBuffer.wrap(vm.getBinary(value))); } else if (transCoder.indexOf("DynamicCompositeType") > 0) { //$NON-NLS-1$ AbstractType<?> serializer = null; if (vm.isString()) { try { serializer = TypeParser.parse(fullTransCoder); decomposed = ((DynamicCompositeType) serializer).fromString(vm.getString(value)); } catch (Exception e) { throw new KettleException(e.getMessage(), e); } } else { throw new KettleException( BaseMessages.getString(PKG, "CassandraColumnMetaData.Error.CantConvertTypeThrift", //$NON-NLS-1$ vm.getTypeDesc(), fullTransCoder)); } } else if (transCoder.indexOf("CompositeType") > 0) { //$NON-NLS-1$ AbstractType<?> serializer = null; if (vm.isString()) { try { serializer = TypeParser.parse(fullTransCoder); decomposed = ((CompositeType) serializer).fromString(vm.toString()); } catch (Exception e) { throw new KettleException(e.getMessage(), e); } } else { throw new KettleException( BaseMessages.getString(PKG, "CassandraColumnMetaData.Error.CantConvertTypeThrift", //$NON-NLS-1$ vm.getTypeDesc(), fullTransCoder)); } } if (decomposed == null) { throw new KettleException(BaseMessages.getString(PKG, "CassandraColumnMetaData.Error.UnableToConvertValue", vm.getName())); //$NON-NLS-1$ } return decomposed; }