in streams-plugins/streams-plugin-hbase/src/main/java/org/apache/streams/plugins/hbase/StreamsHbaseResourceGenerator.java [166:211]
protected StringBuilder appendRootObject(StringBuilder builder, Schema schema, String resourceId) {
Objects.requireNonNull(builder);
ObjectNode propertiesNode = schemaStore.resolveProperties(schema, null, resourceId);
if ( propertiesNode != null && propertiesNode.isObject() && propertiesNode.size() > 0) {
List<String> fieldStrings = new ArrayList<>();
// table
fieldStrings.add(hbaseEscape(schemaSymbol(schema)));
// column family
fieldStrings.add(hbaseEscape(schemaSymbol(schema)));
// parent column family
if ( schema.getParent() != null ) {
fieldStrings.add(hbaseEscape(schemaSymbol(schema.getParent())));
}
// sub-object column families
if ( propertiesNode != null && propertiesNode.isObject() && propertiesNode.size() > 0 ) {
Iterator<Map.Entry<String, JsonNode>> fields = propertiesNode.fields();
for ( ; fields.hasNext(); ) {
Map.Entry<String, JsonNode> field = fields.next();
String fieldId = field.getKey();
if ( !config.getExclusions().contains(fieldId) && field.getValue().isObject()) {
ObjectNode fieldNode = (ObjectNode) field.getValue();
FieldType fieldType = FieldUtil.determineFieldType(fieldNode);
if (fieldType != null ) {
switch (fieldType) {
case OBJECT:
fieldStrings.add(hbaseEscape(fieldId));
break;
default:
break;
}
}
}
}
builder.append(String.join(", ", fieldStrings));
}
}
Objects.requireNonNull(builder);
return builder;
}