class BooleanConditionInspector extends ComparableConditionInspector {

    @Override
    public boolean isRedundant(final Object other) {
        if (this.equals(other)) {
            return true;
        }
        if (other instanceof BooleanConditionInspector) {
            switch (operator) {
                case EQUALS:
                    switch (((BooleanConditionInspector) other).operator) {
                        case EQUALS:
                            return getValues().containsAll(((BooleanConditionInspector) other).getValues());
                        case NOT_EQUALS:
                            return !getValue().equals(((BooleanConditionInspector) other).getValue());
                        default:
                            return false;
                    }
                case NOT_EQUALS:
                    switch (((BooleanConditionInspector) other).operator) {
                        case EQUALS:
                            return !getValues().equals(((BooleanConditionInspector) other).getValues());
                        case NOT_EQUALS:
                            return getValues().containsAll(((BooleanConditionInspector) other).getValues());
                        default:
                            return false;
                    }
                default:
                    return false;
            }
        } else {
            return false;
        }
    }

    public  BooleanConditionInspector(final FieldCondition<Boolean> fieldCondition,
                                     final AnalyzerConfiguration configuration);

}