final void addTableDescriptor(TableDescriptor tableDescriptor) { String tableId = tableDescriptor.getTableId(); Preconditions.checkState(StringUtils.isNotBlank(tableId) && ID_PATTERN.matcher(tableId).matches(), String.format("tableId: %s must confirm to pattern: %s", tableId, ID_PATTERN.toString())); Preconditions.checkState(!tableDescriptors.containsKey(tableId) || tableDescriptors.get(tableId) == tableDescriptor, String.format("Cannot add multiple table descriptors with the same tableId: %s", tableId)); if (tableDescriptor instanceof HybridTableDescriptor) { List<? extends TableDescriptor> tableDescs = ((HybridTableDescriptor) tableDescriptor).getTableDescriptors(); tableDescs.forEach(td -> addTableDescriptor(td)); } tableDescriptors.put(tableId, tableDescriptor); }
@Override public Map<String, String> toConfig(Config jobConfig) { Map<String, String> tableConfig = new HashMap<>(super.toConfig(jobConfig)); if (cache != null) { addTableConfig(CACHE_TABLE_ID, cache.getTableId(), tableConfig); } else { if (readTtl != null) { addTableConfig(READ_TTL_MS, String.valueOf(readTtl.toMillis()), tableConfig); } if (writeTtl != null) { addTableConfig(WRITE_TTL_MS, String.valueOf(writeTtl.toMillis()), tableConfig); } if (cacheSize > 0) { addTableConfig(CACHE_SIZE, String.valueOf(cacheSize), tableConfig); } } addTableConfig(REAL_TABLE_ID, table.getTableId(), tableConfig); addTableConfig(WRITE_AROUND, String.valueOf(isWriteAround), tableConfig); return Collections.unmodifiableMap(tableConfig); }