@Override public String resolve(String partitionKey, String rowKey, Date timeStamp, HashMap<String, EntityProperty> properties, String etag) { return properties.get(TableConstants.TABLE_NAME).getValueAsString(); } };
@Override public String resolve(String partitionKey, String rowKey, Date timeStamp, HashMap<String, EntityProperty> properties, String etag) { return properties.get(TableConstants.TABLE_NAME).getValueAsString(); } };
protected static String getStringOrNull(DynamicTableEntity entity, String key) { EntityProperty property = entity.getProperties().get(key); String result = null; if (property != null) { result = property.getValueAsString(); } return result; } }
private static void writeJsonProperty(JsonGenerator generator, Entry<String, EntityProperty> prop) throws JsonGenerationException, IOException { EdmType edmType = prop.getValue().getEdmType(); if (prop.getValue().getIsNull()) { generator.writeNullField(prop.getKey()); } else if (edmType == EdmType.BOOLEAN) { generator.writeBooleanField(prop.getKey(), prop.getValue().getValueAsBoolean()); } else if (edmType == EdmType.DOUBLE) { generator.writeNumberField(prop.getKey(), prop.getValue().getValueAsDouble()); } else if (edmType == EdmType.INT32) { generator.writeNumberField(prop.getKey(), prop.getValue().getValueAsInteger()); } else { generator.writeStringField(prop.getKey(), prop.getValue().getValueAsString()); } }
private static void writeJsonProperty(JsonGenerator generator, Entry<String, EntityProperty> prop) throws JsonGenerationException, IOException { EdmType edmType = prop.getValue().getEdmType(); if (prop.getValue().getIsNull()) { generator.writeNullField(prop.getKey()); } else if (edmType == EdmType.BOOLEAN) { generator.writeBooleanField(prop.getKey(), prop.getValue().getValueAsBoolean()); } else if (edmType == EdmType.DOUBLE) { generator.writeNumberField(prop.getKey(), prop.getValue().getValueAsDouble()); } else if (edmType == EdmType.INT32) { generator.writeNumberField(prop.getKey(), prop.getValue().getValueAsInteger()); } else { generator.writeStringField(prop.getKey(), prop.getValue().getValueAsString()); } } }
@Override public Object convertToAvro(DynamicTableEntity value) { try { if (COL_PARITION_KEY.equals(f.name()) || COL_PARITION_KEY.equals(mappedName)) { return value.getPartitionKey(); } if (COL_ROW_KEY.equals(f.name()) || COL_ROW_KEY.equals(mappedName)) { return value.getRowKey(); } if (f.name().equals(COL_TIMESTAMP) || mappedName.equals(COL_TIMESTAMP)) { // should be set to DT // but... String pattern = f.getProp(SchemaConstants.TALEND_COLUMN_PATTERN); if (pattern != null && !pattern.isEmpty()) return new SimpleDateFormat(pattern).format(value.getTimestamp()); else return value.getTimestamp(); } if (!value.getProperties().containsKey(mappedName) || value.getProperties().get(mappedName) == null) { return null; } return value.getProperties().get(mappedName).getValueAsString(); } catch (Exception e) { LOGGER.error(i18nMessages.getMessage("error.ConversionError", e)); throw new ComponentException(e); } } }
@Override public Object convertToAvro(DynamicTableEntity value) { try { if (COL_PARITION_KEY.equals(f.name()) || COL_PARITION_KEY.equals(mappedName)) { return value.getPartitionKey(); } if (COL_ROW_KEY.equals(f.name()) || COL_ROW_KEY.equals(mappedName)) { return value.getRowKey(); } if (f.name().equals(COL_TIMESTAMP) || mappedName.equals(COL_TIMESTAMP)) { // should be set to DT // but... String pattern = f.getProp(SchemaConstants.TALEND_COLUMN_PATTERN); if (pattern != null && !pattern.isEmpty()) return new SimpleDateFormat(pattern).format(value.getTimestamp()); else return value.getTimestamp(); } if (!value.getProperties().containsKey(mappedName) || value.getProperties().get(mappedName) == null) { return null; } return value.getProperties().get(mappedName).getValueAsString(); } catch (Exception e) { LOGGER.error(i18nMessages.getMessage("error.ConversionError", e)); throw new ComponentException(e); } } }
@Override public Class1 resolve(String partitionKey, String rowKey, Date timeStamp, HashMap<String, EntityProperty> properties, String etag) { assertEquals(properties.size(), 4); Class1 ref = new Class1(); ref.setA(properties.get("A").getValueAsString()); ref.setB(properties.get("B").getValueAsString()); ref.setC(properties.get("C").getValueAsString()); ref.setD(properties.get("D").getValueAsByteArray()); return ref; } });
@Override public Class1 resolve(String partitionKey, String rowKey, Date timeStamp, HashMap<String, EntityProperty> properties, String etag) { assertEquals(properties.size(), 4); Class1 ref = new Class1(); ref.setA(properties.get("A").getValueAsString()); ref.setB(properties.get("B").getValueAsString()); ref.setC(properties.get("C").getValueAsString()); ref.setD(properties.get("D").getValueAsByteArray()); return ref; } }, options, null);
@Override public Class1 resolve(String partitionKey, String rowKey, Date timeStamp, HashMap<String, EntityProperty> properties, String etag) { Class1 result = new Class1(); result.setA(properties.get("A").getValueAsString()); result.setD(properties.get("D").getValueAsByteArray()); return result; } }), options, null);
@Override public Class1 resolve(String partitionKey, String rowKey, Date timeStamp, HashMap<String, EntityProperty> properties, String etag) { Class1 result = new Class1(); result.setA(properties.get("A").getValueAsString()); result.setD(properties.get("D").getValueAsByteArray()); return result; } }), options, null);
private void testTableQueryWithDynamicEntity(TableRequestOptions options) { // Create entity to check against Class1 randEnt = TableTestHelper.generateRandomEntity(null); final Iterable<DynamicTableEntity> result = table.execute(TableQuery.from(DynamicTableEntity.class), options, null); // Validate results for (DynamicTableEntity ent : result) { assertEquals(ent.getProperties().size(), 4); assertEquals(ent.getProperties().get("A").getValueAsString(), randEnt.getA()); assertEquals(ent.getProperties().get("B").getValueAsString(), randEnt.getB()); assertEquals(ent.getProperties().get("C").getValueAsString(), randEnt.getC()); assertTrue(Arrays.equals(ent.getProperties().get("D").getValueAsByteArray(), randEnt.getD())); } }
private void testTableWithSelectOnMissingFields(TableRequestOptions options) throws StorageException { TableQuery<DynamicTableEntity> projectionQuery = TableQuery.from(DynamicTableEntity.class).where( "(PartitionKey eq 'javatables_batch_0') and (RowKey eq '000000')"); // A exists, F does not projectionQuery.select(new String[]{"A", "F"}); ResultSegment<DynamicTableEntity> seg = table.executeSegmented(projectionQuery, null, options, null); assertEquals(1, seg.getResults().size()); DynamicTableEntity ent = seg.getResults().get(0); assertEquals("foo_A", ent.getProperties().get("A").getValueAsString()); assertEquals(null, ent.getProperties().get("F").getValueAsString()); assertEquals(EdmType.STRING, ent.getProperties().get("F").getEdmType()); }
assertEquals(ent.getProperties().get("A").getValueAsString(), randEnt.getA()); assertEquals(ent.getProperties().get("B").getValueAsString(), randEnt.getB()); assertEquals(ent.getProperties().get("C").getValueAsString(), randEnt.getC()); assertTrue(Arrays.equals(ent.getProperties().get("D").getValueAsByteArray(), randEnt.getD())); firstIteration.add(ent); assertEquals(ent.getProperties().get("A").getValueAsString(), randEnt.getA()); assertEquals(ent.getProperties().get("B").getValueAsString(), randEnt.getB()); assertEquals(ent.getProperties().get("C").getValueAsString(), randEnt.getC()); assertTrue(Arrays.equals(ent.getProperties().get("D").getValueAsByteArray(), randEnt.getD())); secondIteration.add(ent); assertEquals(firstIteration.get(m).getRowKey(), secondIteration.get(m).getRowKey()); assertEquals(firstIteration.get(m).getProperties().size(), secondIteration.get(m).getProperties().size()); assertEquals(firstIteration.get(m).getProperties().get("A").getValueAsString(), secondIteration.get(m) .getProperties().get("A").getValueAsString()); assertEquals(firstIteration.get(m).getProperties().get("B").getValueAsString(), secondIteration.get(m) .getProperties().get("B").getValueAsString()); assertEquals(firstIteration.get(m).getProperties().get("C").getValueAsString(), secondIteration.get(m) .getProperties().get("C").getValueAsString()); assertTrue(Arrays.equals(firstIteration.get(m).getProperties().get("D").getValueAsByteArray(), secondIteration.get(m).getProperties().get("D").getValueAsByteArray()));
final boolean isTableEntry = TableConstants.TABLES_SERVICE_TABLES_NAME.equals(tableName); final String tableIdentity = isTableEntry ? this.getEntity().writeEntity(opContext) .get(TableConstants.TABLE_NAME).getValueAsString() : null;
final boolean isTableEntry = TableConstants.TABLES_SERVICE_TABLES_NAME.equals(tableName); final String tableIdentity = isTableEntry ? this.getEntity().writeEntity(opContext) .get(TableConstants.TABLE_NAME).getValueAsString() : null;
assertEquals(baseEntity.getA(), mergedEntity.getProperties().get("A").getValueAsString()); assertEquals(baseEntity.getB(), mergedEntity.getProperties().get("B").getValueAsString()); assertEquals(baseEntity.getC(), mergedEntity.getProperties().get("C").getValueAsString()); assertEquals(secondEntity.getL(), mergedEntity.getProperties().get("L").getValueAsString()); assertEquals(secondEntity.getM(), mergedEntity.getProperties().get("M").getValueAsString()); assertEquals(secondEntity.getN(), mergedEntity.getProperties().get("N").getValueAsString()); assertEquals(secondEntity.getO(), mergedEntity.getProperties().get("O").getValueAsString());
assertEquals(baseEntity.getA(), retrievedEntity.getProperties().get("A").getValueAsString()); assertEquals(baseEntity.getB(), retrievedEntity.getProperties().get("B").getValueAsString()); assertEquals(baseEntity.getC(), retrievedEntity.getProperties().get("C").getValueAsString()); assertEquals(secondEntity.getL(), retrievedEntity.getProperties().get("L").getValueAsString()); assertEquals(secondEntity.getM(), retrievedEntity.getProperties().get("M").getValueAsString()); assertEquals(secondEntity.getN(), retrievedEntity.getProperties().get("N").getValueAsString()); assertEquals(secondEntity.getO(), retrievedEntity.getProperties().get("O").getValueAsString());
assertEquals(baseEntity.getA(), retrievedEntity.getProperties().get("A").getValueAsString()); assertEquals(baseEntity.getB(), retrievedEntity.getProperties().get("B").getValueAsString()); assertEquals(baseEntity.getC(), retrievedEntity.getProperties().get("C").getValueAsString());
assertEquals(secondEntity.getL(), retrievedEntity.getProperties().get("L").getValueAsString()); assertEquals(secondEntity.getM(), retrievedEntity.getProperties().get("M").getValueAsString()); assertEquals(secondEntity.getN(), retrievedEntity.getProperties().get("N").getValueAsString()); assertEquals(secondEntity.getO(), retrievedEntity.getProperties().get("O").getValueAsString());