/** * 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 RowModel mapsXmlRowToRowModel( List<ColumnMetadata> columnMetaData, Row xmlRow, ComparatorType keyType, GenericTypeEnum[] typesBelongingCompositeTypeForKeyType, ComparatorType comparatorType, GenericTypeEnum[] typesBelongingCompositeTypeForComparatorType, ComparatorType subComparatorType, ComparatorType defaultColumnValueType) { RowModel row = new RowModel(); row.setKey( TypeExtractor.constructGenericType( xmlRow.getKey(), keyType, typesBelongingCompositeTypeForKeyType)); row.setColumns( mapXmlColumnsToColumnsModel( columnMetaData, xmlRow.getColumn(), comparatorType, typesBelongingCompositeTypeForComparatorType, defaultColumnValueType)); row.setSuperColumns( mapXmlSuperColumnsToSuperColumnsModel( columnMetaData, xmlRow.getSuperColumn(), comparatorType, subComparatorType, defaultColumnValueType)); return row; }
private RowModel mapsParsedRowToRowModel( List<ParsedColumnMetadata> metaData, ParsedRow parsedRow, ComparatorType keyType, GenericTypeEnum[] typesBelongingCompositeTypeForKeyType, ComparatorType comparatorType, GenericTypeEnum[] typesBelongingCompositeTypeForComparatorType, ComparatorType subComparatorType, ComparatorType defaultColumnValueType) { RowModel row = new RowModel(); row.setKey( TypeExtractor.constructGenericType( parsedRow.getKey(), keyType, typesBelongingCompositeTypeForKeyType)); row.setColumns( mapParsedColumnsToColumnsModel( metaData, parsedRow.getColumns(), comparatorType, typesBelongingCompositeTypeForComparatorType, defaultColumnValueType)); row.setSuperColumns( mapParsedSuperColumnsToSuperColumnsModel( metaData, parsedRow.getSuperColumns(), comparatorType, subComparatorType, defaultColumnValueType)); return row; }
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; }
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; }