/** * map an xml column to a column * * @param xmlColumn xml column * @param typesBelongingCompositeTypeForComparatorType * @return column */ private ColumnModel mapXmlColumnToColumnModel( ColumnMetadata metaData, Column xmlColumn, ComparatorType comparatorType, GenericTypeEnum[] typesBelongingCompositeTypeForComparatorType, ComparatorType defaultColumnValueType) { ColumnModel columnModel = new ColumnModel(); if (comparatorType == null) { columnModel.setName(new GenericType(xmlColumn.getName(), GenericTypeEnum.BYTES_TYPE)); } else if (ComparatorType.COMPOSITETYPE.getTypeName().equals(comparatorType.getTypeName())) { /* composite type */ try { columnModel.setName( new GenericType( StringUtils.split(xmlColumn.getName(), ":"), typesBelongingCompositeTypeForComparatorType)); } catch (IllegalArgumentException e) { throw new ParseException( xmlColumn.getName() + " doesn't fit with the schema declaration of your composite type"); } } else { /* simple type */ columnModel.setName( new GenericType( xmlColumn.getName(), GenericTypeEnum.fromValue(comparatorType.getTypeName()))); } if (defaultColumnValueType != null && ComparatorType.COUNTERTYPE.getClassName().equals(defaultColumnValueType.getClassName()) && TypeExtractor.containFunctions(xmlColumn.getValue())) { throw new ParseException("Impossible to override Column value into a Counter column family"); } GenericType columnValue = null; if (metaData != null) { GenericTypeEnum genTypeEnum = GenericTypeEnum.valueOf(metaData.getValidationClass().name()); columnValue = new GenericType(xmlColumn.getValue(), genTypeEnum); } else { columnValue = TypeExtractor.extract(xmlColumn.getValue(), defaultColumnValueType); } columnModel.setValue(columnValue); String timestamp = xmlColumn.getTimestamp(); if (timestamp != null) { columnModel.setTimestamp(Long.valueOf(timestamp)); } else { columnModel.setTimestamp(null); } return columnModel; }
private ColumnMetadataModel mapParsedColumMetadataToColumnMetadata( ParsedColumnMetadata parsedColumnMetadata, ComparatorType comparatorType, GenericTypeEnum[] typesBelongingCompositeTypeForComparatorType) { if (parsedColumnMetadata.getName() == null) { throw new ParseException("column metadata name can't be empty"); } if (parsedColumnMetadata.getValidationClass() == null) { throw new ParseException("column metadata validation class can't be empty"); } ColumnMetadataModel columnMetadata = new ColumnMetadataModel(); columnMetadata.setColumnName( TypeExtractor.constructGenericType( parsedColumnMetadata.getName(), comparatorType, typesBelongingCompositeTypeForComparatorType)); columnMetadata.setValidationClass( ComparatorType.getByClassName(parsedColumnMetadata.getValidationClass().name())); if (parsedColumnMetadata.getIndexType() != null) { columnMetadata.setColumnIndexType( ColumnIndexType.valueOf(parsedColumnMetadata.getIndexType().name())); } if (parsedColumnMetadata.getIndexName() != null) { columnMetadata.setIndexName(parsedColumnMetadata.getIndexName()); } return columnMetadata; }
public static void addKeySpace(Cluster myCluster) { List<ColumnFamilyDefinition> cfDefs = new ArrayList<ColumnFamilyDefinition>(); cfDefs.add( HFactory.createColumnFamilyDefinition( "deneme", "global", ComparatorType.getByClassName("DateType"))); cfDefs.add( HFactory.createColumnFamilyDefinition( "deneme", "campaign1", ComparatorType.getByClassName("DateType"))); cfDefs.add( HFactory.createColumnFamilyDefinition( "deneme", "campaign2", ComparatorType.getByClassName("DateType"))); cfDefs.add( HFactory.createColumnFamilyDefinition( "deneme", "campaign3", ComparatorType.getByClassName("DateType"))); KeyspaceDefinition ksdef = HFactory.createKeyspaceDefinition( "deneme", "org.apache.cassandra.locator.SimpleStrategy", 1, cfDefs); myCluster.addKeyspace(ksdef, true); }
private ColumnMetadataModel mapXmlColumnMetadataToColumMetadataModel( ColumnMetadata xmlColumnMetadata) { ColumnMetadataModel columnMetadata = new ColumnMetadataModel(); columnMetadata.setColumnName(xmlColumnMetadata.getName()); columnMetadata.setValidationClass( ComparatorType.getByClassName(xmlColumnMetadata.getValidationClass().value())); if (xmlColumnMetadata.getIndexType() != null) { columnMetadata.setColumnIndexType( ColumnIndexType.valueOf(xmlColumnMetadata.getIndexType().value())); } columnMetadata.setIndexName(xmlColumnMetadata.getIndexName()); return columnMetadata; }
/** * map an xml super colmun to a super column * * @param xmlSuperColumn xml super column * @param subComparatorType * @param comparatorType * @return supercolumn */ private SuperColumnModel mapXmlSuperColumnToSuperColumnModel( List<ColumnMetadata> columnMetaData, SuperColumn xmlSuperColumn, ComparatorType comparatorType, ComparatorType subComparatorType, ComparatorType defaultColumnValueType) { SuperColumnModel superColumnModel = new SuperColumnModel(); superColumnModel.setName( new GenericType( xmlSuperColumn.getName(), GenericTypeEnum.fromValue(comparatorType.getTypeName()))); superColumnModel.setColumns( mapXmlColumnsToColumnsModel( columnMetaData, xmlSuperColumn.getColumn(), subComparatorType, null, defaultColumnValueType)); return superColumnModel; }
private SuperColumnModel mapParsedSuperColumnToSuperColumnModel( List<ParsedColumnMetadata> metaData, ParsedSuperColumn parsedSuperColumn, ComparatorType comparatorType, ComparatorType subComparatorType, ComparatorType defaultColumnValueType) { SuperColumnModel superColumnModel = new SuperColumnModel(); superColumnModel.setName( new GenericType( parsedSuperColumn.getName(), GenericTypeEnum.fromValue(comparatorType.getTypeName()))); superColumnModel.setColumns( mapParsedColumnsToColumnsModel( metaData, parsedSuperColumn.getColumns(), subComparatorType, null, defaultColumnValueType)); return superColumnModel; }
/** * Create a Column family in a Given Cluster instance * * @param name ColumnFamily Name * @param keySpace KeySpace name * @param cluster Cluster instance * @param comparatorType Comparator * @throws CassandraDataAccessException In case of an Error accessing database or data error */ public static void createColumnFamily( String name, String keySpace, Cluster cluster, String comparatorType) throws CassandraDataAccessException { KeyspaceDefinition ksDef = cluster.describeKeyspace(keySpace); if (ksDef == null) { throw new CassandraDataAccessException( "Can't create Column family, keyspace " + keySpace + " does not exist"); } ColumnFamilyDefinition cfDef = new ThriftCfDef(keySpace, /*"Queue"*/ name, ComparatorType.getByClassName(comparatorType)); List<ColumnFamilyDefinition> cfDefsList = ksDef.getCfDefs(); HashSet<String> cfNames = new HashSet<String>(); for (ColumnFamilyDefinition columnFamilyDefinition : cfDefsList) { cfNames.add(columnFamilyDefinition.getName()); } if (!cfNames.contains(name)) { cluster.addColumnFamily(cfDef, true); } }
private ColumnModel mapParsedColumnToColumnModel( ParsedColumnMetadata metaData, ParsedColumn parsedColumn, ComparatorType comparatorType, GenericTypeEnum[] typesBelongingCompositeTypeForComparatorType, ComparatorType defaultColumnValueType) { ColumnModel columnModel = new ColumnModel(); columnModel.setName( TypeExtractor.constructGenericType( parsedColumn.getName(), comparatorType, typesBelongingCompositeTypeForComparatorType)); if (ComparatorType.COUNTERTYPE.getClassName().equals(defaultColumnValueType.getClassName()) && TypeExtractor.containFunctions(parsedColumn.getValue())) { throw new ParseException("Impossible to override Column value into a Counter column family"); } GenericType columnValue = null; if (parsedColumn.getValue() != null) { if (metaData != null && !TypeExtractor.containFunctions(parsedColumn.getValue())) { GenericTypeEnum genTypeEnum = GenericTypeEnum.fromValue(metaData.getValidationClass().name()); columnValue = new GenericType(parsedColumn.getValue(), genTypeEnum); } else { columnValue = TypeExtractor.extract(parsedColumn.getValue(), defaultColumnValueType); } } columnModel.setValue(columnValue); String timestamp = parsedColumn.getTimestamp(); if (timestamp != null) { columnModel.setTimestamp(Long.valueOf(timestamp)); } else { columnModel.setTimestamp(null); } return columnModel; }
public boolean isCounter() { return defaultColumnValueType != null && defaultColumnValueType.equals(ComparatorType.COUNTERTYPE); }
private ColumnFamilyModel mapXmlColumnFamilyToColumnFamilyModel( org.cassandraunit.dataset.xml.ColumnFamily xmlColumnFamily) { ColumnFamilyModel columnFamily = new ColumnFamilyModel(); /* structure information */ columnFamily.setName(xmlColumnFamily.getName()); if (xmlColumnFamily.getType() != null) { columnFamily.setType(ColumnType.valueOf(xmlColumnFamily.getType().toString())); } columnFamily.setComment(xmlColumnFamily.getComment()); if (xmlColumnFamily.getCompactionStrategy() != null) { columnFamily.setCompactionStrategy(xmlColumnFamily.getCompactionStrategy()); } if (xmlColumnFamily.getCompactionStrategyOptions() != null) { List<CompactionStrategyOptionModel> compactionStrategyOptionModels = new ArrayList<CompactionStrategyOptionModel>(); for (CompactionStrategyOption compactionStrategyOption : xmlColumnFamily.getCompactionStrategyOptions().getCompactionStrategyOption()) { compactionStrategyOptionModels.add( new CompactionStrategyOptionModel( compactionStrategyOption.getName(), compactionStrategyOption.getValue())); } columnFamily.setCompactionStrategyOptions(compactionStrategyOptionModels); } if (xmlColumnFamily.getGcGraceSeconds() != null) { columnFamily.setGcGraceSeconds(xmlColumnFamily.getGcGraceSeconds()); } if (xmlColumnFamily.getMaxCompactionThreshold() != null) { columnFamily.setMaxCompactionThreshold(xmlColumnFamily.getMaxCompactionThreshold()); } if (xmlColumnFamily.getMinCompactionThreshold() != null) { columnFamily.setMinCompactionThreshold(xmlColumnFamily.getMinCompactionThreshold()); } if (xmlColumnFamily.getReadRepairChance() != null) { columnFamily.setReadRepairChance(xmlColumnFamily.getReadRepairChance()); } if (xmlColumnFamily.getReplicationOnWrite() != null) { columnFamily.setReplicationOnWrite(xmlColumnFamily.getReplicationOnWrite()); } GenericTypeEnum[] typesBelongingCompositeTypeForKeyType = null; if (xmlColumnFamily.getKeyType() != null) { ComparatorType keyType = ComparatorTypeHelper.verifyAndExtract(xmlColumnFamily.getKeyType()); columnFamily.setKeyType(keyType); if (ComparatorType.COMPOSITETYPE.getTypeName().equals(keyType.getTypeName())) { String keyTypeAlias = StringUtils.removeStart( xmlColumnFamily.getKeyType(), ComparatorType.COMPOSITETYPE.getTypeName()); columnFamily.setKeyTypeAlias(keyTypeAlias); typesBelongingCompositeTypeForKeyType = ComparatorTypeHelper.extractGenericTypesFromTypeAlias(keyTypeAlias); } } GenericTypeEnum[] typesBelongingCompositeTypeForComparatorType = null; if (xmlColumnFamily.getComparatorType() != null) { ComparatorType comparatorType = ComparatorTypeHelper.verifyAndExtract(xmlColumnFamily.getComparatorType()); columnFamily.setComparatorType(comparatorType); if (ComparatorType.COMPOSITETYPE.getTypeName().equals(comparatorType.getTypeName())) { String comparatorTypeAlias = StringUtils.removeStart( xmlColumnFamily.getComparatorType(), ComparatorType.COMPOSITETYPE.getTypeName()); columnFamily.setComparatorTypeAlias(comparatorTypeAlias); typesBelongingCompositeTypeForComparatorType = ComparatorTypeHelper.extractGenericTypesFromTypeAlias(comparatorTypeAlias); } } if (xmlColumnFamily.getSubComparatorType() != null) { columnFamily.setSubComparatorType( ComparatorType.getByClassName(xmlColumnFamily.getSubComparatorType().value())); } if (xmlColumnFamily.getDefaultColumnValueType() != null) { columnFamily.setDefaultColumnValueType( ComparatorType.getByClassName(xmlColumnFamily.getDefaultColumnValueType().value())); } columnFamily.setColumnsMetadata( mapXmlColumsMetadataToColumnsMetadata(xmlColumnFamily.getColumnMetadata())); /* data information */ columnFamily.setRows( mapXmlRowsToRowsModel( xmlColumnFamily, columnFamily.getKeyType(), typesBelongingCompositeTypeForKeyType, columnFamily.getComparatorType(), typesBelongingCompositeTypeForComparatorType, columnFamily.getSubComparatorType(), columnFamily.getDefaultColumnValueType())); return columnFamily; }
private ColumnFamilyModel mapParsedColumnFamilyToColumnFamilyModel( ParsedColumnFamily parsedColumnFamily) { ColumnFamilyModel columnFamily = new ColumnFamilyModel(); /* structure information */ if (parsedColumnFamily == null || parsedColumnFamily.getName() == null) { throw new ParseException("Column Family Name is missing"); } columnFamily.setName(parsedColumnFamily.getName()); if (parsedColumnFamily.getType() != null) { columnFamily.setType(ColumnType.valueOf(parsedColumnFamily.getType().toString())); } columnFamily.setComment(parsedColumnFamily.getComment()); if (parsedColumnFamily.getCompactionStrategy() != null) { columnFamily.setCompactionStrategy(parsedColumnFamily.getCompactionStrategy()); } if (parsedColumnFamily.getCompactionStrategyOptions() != null && !parsedColumnFamily.getCompactionStrategyOptions().isEmpty()) { List<CompactionStrategyOptionModel> compactionStrategyOptionModels = new ArrayList<CompactionStrategyOptionModel>(); for (ParsedCompactionStrategyOption parsedCompactionStrategyOption : parsedColumnFamily.getCompactionStrategyOptions()) { compactionStrategyOptionModels.add( new CompactionStrategyOptionModel( parsedCompactionStrategyOption.getName(), parsedCompactionStrategyOption.getValue())); } columnFamily.setCompactionStrategyOptions(compactionStrategyOptionModels); } if (parsedColumnFamily.getGcGraceSeconds() != null) { columnFamily.setGcGraceSeconds(parsedColumnFamily.getGcGraceSeconds()); } if (parsedColumnFamily.getMaxCompactionThreshold() != null) { columnFamily.setMaxCompactionThreshold(parsedColumnFamily.getMaxCompactionThreshold()); } if (parsedColumnFamily.getMinCompactionThreshold() != null) { columnFamily.setMinCompactionThreshold(parsedColumnFamily.getMinCompactionThreshold()); } if (parsedColumnFamily.getReadRepairChance() != null) { columnFamily.setReadRepairChance(parsedColumnFamily.getReadRepairChance()); } if (parsedColumnFamily.getReplicationOnWrite() != null) { columnFamily.setReplicationOnWrite(parsedColumnFamily.getReplicationOnWrite()); } /* keyType */ GenericTypeEnum[] typesBelongingCompositeTypeForKeyType = null; if (parsedColumnFamily.getKeyType() != null) { ComparatorType keyType = ComparatorTypeHelper.verifyAndExtract(parsedColumnFamily.getKeyType()); columnFamily.setKeyType(keyType); if (ComparatorType.COMPOSITETYPE.getTypeName().equals(keyType.getTypeName())) { String keyTypeAlias = StringUtils.removeStart( parsedColumnFamily.getKeyType(), ComparatorType.COMPOSITETYPE.getTypeName()); columnFamily.setKeyTypeAlias(keyTypeAlias); typesBelongingCompositeTypeForKeyType = ComparatorTypeHelper.extractGenericTypesFromTypeAlias(keyTypeAlias); } } /* comparatorType */ GenericTypeEnum[] typesBelongingCompositeTypeForComparatorType = null; if (parsedColumnFamily.getComparatorType() != null) { ComparatorType comparatorType = ComparatorTypeHelper.verifyAndExtract(parsedColumnFamily.getComparatorType()); columnFamily.setComparatorType(comparatorType); if (ComparatorType.COMPOSITETYPE.getTypeName().equals(comparatorType.getTypeName())) { String comparatorTypeAlias = StringUtils.removeStart( parsedColumnFamily.getComparatorType(), ComparatorType.COMPOSITETYPE.getTypeName()); columnFamily.setComparatorTypeAlias(comparatorTypeAlias); typesBelongingCompositeTypeForComparatorType = ComparatorTypeHelper.extractGenericTypesFromTypeAlias(comparatorTypeAlias); } } /* subComparatorType */ if (parsedColumnFamily.getSubComparatorType() != null) { columnFamily.setSubComparatorType( ComparatorType.getByClassName(parsedColumnFamily.getSubComparatorType().name())); } if (parsedColumnFamily.getDefaultColumnValueType() != null) { columnFamily.setDefaultColumnValueType( ComparatorType.getByClassName(parsedColumnFamily.getDefaultColumnValueType().name())); } columnFamily.setColumnsMetadata( mapParsedColumsMetadataToColumnsMetadata( parsedColumnFamily.getColumnsMetadata(), columnFamily.getComparatorType(), typesBelongingCompositeTypeForComparatorType)); /* data information */ columnFamily.setRows( mapParsedRowsToRowsModel( parsedColumnFamily, columnFamily.getKeyType(), typesBelongingCompositeTypeForKeyType, columnFamily.getComparatorType(), typesBelongingCompositeTypeForComparatorType, columnFamily.getSubComparatorType(), columnFamily.getDefaultColumnValueType())); return columnFamily; }