### Question:
HiveApplyProjectionUtil { public static List<ConnectorExpression> extractSupportedProjectedColumns(ConnectorExpression expression) { requireNonNull(expression, "expression is null"); ImmutableList.Builder<ConnectorExpression> supportedSubExpressions = ImmutableList.builder(); fillSupportedProjectedColumns(expression, supportedSubExpressions); return supportedSubExpressions.build(); } private  HiveApplyProjectionUtil(); static List<ConnectorExpression> extractSupportedProjectedColumns(ConnectorExpression expression); static ProjectedColumnRepresentation createProjectedColumnRepresentation(ConnectorExpression expression); static ConnectorExpression replaceWithNewVariables(ConnectorExpression expression, Map<ConnectorExpression, Variable> expressionToVariableMappings); static Optional<String> find(Map<String, ColumnHandle> assignments, ProjectedColumnRepresentation projectedColumn);  }### Answer:
@Test public void testExtractSupportedProjectionColumns() { assertEquals(extractSupportedProjectedColumns(ONE_LEVEL_DEREFERENCE), ImmutableList.of(ONE_LEVEL_DEREFERENCE)); assertEquals(extractSupportedProjectedColumns(TWO_LEVEL_DEREFERENCE), ImmutableList.of(TWO_LEVEL_DEREFERENCE)); assertEquals(extractSupportedProjectedColumns(INT_VARIABLE), ImmutableList.of(INT_VARIABLE)); assertEquals(extractSupportedProjectedColumns(CONSTANT), ImmutableList.of()); }