@Test public void columnNamesNotExplicitlyMarkedSafeAreUnsafe() { SafeLoggableData safeLoggableData = ImmutableSafeLoggableData.builder() .putPermittedColumnNames(TABLE_REFERENCE_1, ImmutableSet.of(COLUMN_NAME_1)) .build(); assertThat(safeLoggableData.isRowComponentNameSafe(TABLE_REFERENCE_1, COLUMN_NAME_2)).isFalse(); }
@Override public boolean isRowComponentNameSafe(TableReference tableReference, String rowComponentName) { return permittedRowComponents().containsKey(tableReference) && permittedRowComponents().get(tableReference).contains(rowComponentName); }
SafeLoggableData implements KeyValueServiceLogArbitrator { @Override public boolean isRowComponentNameSafe(TableReference tableReference, String rowComponentName) { return permittedRowComponents().containsKey(tableReference) && permittedRowComponents().get(tableReference).contains(rowComponentName); } }
SafeLoggableData implements KeyValueServiceLogArbitrator { @Override public boolean isRowComponentNameSafe(TableReference tableReference, String rowComponentName) { return permittedRowComponents().containsKey(tableReference) && permittedRowComponents().get(tableReference).contains(rowComponentName); }  }
SafeLoggableData implements KeyValueServiceLogArbitrator { @Override public boolean isRowComponentNameSafe(TableReference tableReference, String rowComponentName) { return permittedRowComponents().containsKey(tableReference) && permittedRowComponents().get(tableReference).contains(rowComponentName); }  abstract Set<TableReference> permittedTableReferences(); @Value.Lazy Set<String> permittedInternalTableReferences(); abstract Map<TableReference, Set<String>> permittedRowComponents(); abstract Map<TableReference, Set<String>> permittedColumnNames(); @Override boolean isTableReferenceSafe(TableReference tableReference); @Override boolean isInternalTableReferenceSafe(String internalTableReference); @Override boolean isRowComponentNameSafe(TableReference tableReference, String rowComponentName); @Override boolean isColumnNameSafe(TableReference tableReference, String columnName); }
SafeLoggableData implements KeyValueServiceLogArbitrator { @Override public boolean isRowComponentNameSafe(TableReference tableReference, String rowComponentName) { return permittedRowComponents().containsKey(tableReference) && permittedRowComponents().get(tableReference).contains(rowComponentName); }  abstract Set<TableReference> permittedTableReferences(); @Value.Lazy Set<String> permittedInternalTableReferences(); abstract Map<TableReference, Set<String>> permittedRowComponents(); abstract Map<TableReference, Set<String>> permittedColumnNames(); @Override boolean isTableReferenceSafe(TableReference tableReference); @Override boolean isInternalTableReferenceSafe(String internalTableReference); @Override boolean isRowComponentNameSafe(TableReference tableReference, String rowComponentName); @Override boolean isColumnNameSafe(TableReference tableReference, String columnName);  }