public static NotExpression bind(final NotExpression segment, final SegmentType parentSegmentType,
                                     final SQLStatementBinderContext binderContext, final Map<String, TableSegmentBinderContext> tableBinderContexts) {
        ExpressionSegment boundExpression = ExpressionSegmentBinder.bind(segment.getExpression(), parentSegmentType, binderContext, tableBinderContexts, Collections.emptyMap());
        return new NotExpression(segment.getStartIndex(), segment.getStopIndex(), boundExpression, segment.getNotSign());
    }
@Test
    void assertBind() {
        NotExpression notExpression = new NotExpression(0, 10, new LiteralExpressionSegment(0, 0, "test"), true);
        SQLStatementBinderContext binderContext = mock(SQLStatementBinderContext.class);
        NotExpression actual = NotExpressionBinder.bind(notExpression, SegmentType.PROJECTION, binderContext, Collections.emptyMap());
        assertThat(actual.getNotSign(), is(notExpression.getNotSign()));
        assertThat(actual.getStartIndex(), is(notExpression.getStartIndex()));
        assertThat(actual.getStopIndex(), is(notExpression.getStopIndex()));
        assertThat(actual.getText(), is(notExpression.getText()));
        assertThat(actual.getExpression(), is(notExpression.getExpression()));
    }