public static <K, V> void validateFormat(Map<K, V> offsetData) { // Both keys and values for offsets may be null. For values, this is a useful way to delete offsets or indicate // that there's not usable concept of offsets in your source system. if (offsetData == null) return; for (Map.Entry<K, V> entry : offsetData.entrySet()) { if (!(entry.getKey() instanceof String)) throw new DataException("Offsets may only use String keys"); Object value = entry.getValue(); if (value == null) continue; Schema.Type schemaType = ConnectSchema.schemaType(value.getClass()); if (schemaType == null) throw new DataException("Offsets may only contain primitive types as values, but field " + entry.getKey() + " contains " + value.getClass()); if (!schemaType.isPrimitive()) throw new DataException("Offsets may only contain primitive types as values, but field " + entry.getKey() + " contains " + schemaType); } } }
private static Object projectPrimitive(Schema source, Object record, Schema target) throws SchemaProjectorException { assert source.type().isPrimitive(); assert target.type().isPrimitive(); Object result; if (isPromotable(source.type(), target.type()) && record instanceof Number) {
if (keySchemaType.isPrimitive()) { if (configuredPkFields.size() != 1) { throw new ConnectException(String.format(
if (schemaPair.keySchema.type().isPrimitive()) { assert fieldsMetadata.keyFieldNames.size() == 1; bindField(index++, schemaPair.keySchema, record.key());
private void handleMapField(BsonDocument doc, Struct struct, Field field) { logger.trace("handling complex type 'map'"); BsonDocument bd = new BsonDocument(); if(struct.get(field)==null) { logger.trace("no field in struct -> adding null"); doc.put(field.name(), BsonNull.VALUE); return; } Map m = (Map)struct.get(field); for(Object entry : m.keySet()) { String key = (String)entry; if(field.schema().valueSchema().type().isPrimitive()) { bd.put(key, getConverter(field.schema().valueSchema()).toBson(m.get(key),field.schema())); } else { bd.put(key, toBsonDoc(field.schema().valueSchema(), m.get(key))); } } doc.put(field.name(), bd); }
private void handleMapField(BsonDocument doc, Struct struct, Field field) { logger.trace("handling complex type 'map'"); BsonDocument bd = new BsonDocument(); if(struct.get(field)==null) { logger.trace("no field in struct -> adding null"); doc.put(field.name(), BsonNull.VALUE); return; } Map m = (Map)struct.get(field); for(Object entry : m.keySet()) { String key = (String)entry; if(field.schema().valueSchema().type().isPrimitive()) { bd.put(key, getConverter(field.schema().valueSchema()).toBson(m.get(key),field.schema())); } else { bd.put(key, toBsonDoc(field.schema().valueSchema(), m.get(key))); } } doc.put(field.name(), bd); }
private void handleArrayField(BsonDocument doc, Struct struct, Field field) { logger.trace("handling complex type 'array'"); BsonArray array = new BsonArray(); if(struct.get(field)==null) { logger.trace("no field in struct -> adding null"); doc.put(field.name(), BsonNull.VALUE); return; } for(Object element : (List)struct.get(field)) { if(field.schema().valueSchema().type().isPrimitive()) { array.add(getConverter(field.schema().valueSchema()).toBson(element,field.schema())); } else { array.add(toBsonDoc(field.schema().valueSchema(), element)); } } doc.put(field.name(), array); }
private void handleArrayField(BsonDocument doc, Struct struct, Field field) { logger.trace("handling complex type 'array'"); BsonArray array = new BsonArray(); if(struct.get(field)==null) { logger.trace("no field in struct -> adding null"); doc.put(field.name(), BsonNull.VALUE); return; } for(Object element : (List)struct.get(field)) { if(field.schema().valueSchema().type().isPrimitive()) { array.add(getConverter(field.schema().valueSchema()).toBson(element,field.schema())); } else { array.add(toBsonDoc(field.schema().valueSchema(), element)); } } doc.put(field.name(), array); }