public static List<String> splitFilter( final String input )
    {
        final List<String> result = new ArrayList<>();
        if ( input.length() >= 5 && input.startsWith("(") && input.endsWith("))") && (input.charAt(1) == '&' || input.charAt(1) == '|') && input.charAt(2) == '(' )
        {
            // Strip off the outer parenthesis and search operator.
            String stripped = input.substring(2, input.length() - 1);

            // The remainder should consist only of ()-surrounded parts.
            // We'll remove the leading '(' and trailing ')' character, then split on ")(" to get all parts.
            stripped = stripped.substring(1, stripped.length() - 1);

            final String[] split = stripped.split("\\)\\(");
            result.addAll(Arrays.asList(split));
        }
        else
        {
            result.add(input);
        }

        return result;
    }
@Test
    public void testSplitFilterSimpleSingleValue() throws Exception
    {
        // Setup fixture.
        final String input = "test";

        // Execute system under test.
        final List<String> result = LdapManager.splitFilter( input );

        // Verify result.
        assertNotNull( result );
        assertEquals( 1, result.size() );
        assertTrue( result.contains( input ) );
    }