public static Databases parse(final String databases) {
        Validate.notNull(databases, "Databases must not be null");

        if (SPACES.matcher(databases).matches()) {
            return Databases.ALL;
        }
        
        final Set<String> databasesSet = new LinkedHashSet<String>(Arrays.asList(SEPARATORS.split(databases)));
        databasesSet.remove("");

        if (databasesSet.isEmpty()) {
            return new Databases();
        }

        if ("*".equals(databasesSet.iterator().next())) {
            return ALL;
        }

        databasesSet.remove("*");
        databasesSet.remove(MATCH_NOTHING);

        return new Databases(databasesSet);
    }
public static Databases parse ( final String databases ) { Validate . notNull ( databases , "Databases must not be null" ) ; if ( SPACES . matcher ( databases ) . matches ( ) ) { return Databases . ALL ; } final Set < String > databasesSet = new LinkedHashSet < String > ( Arrays . asList ( SEPARATORS . split ( databases ) ) ) ; databasesSet . remove ( "" ) ; if ( databasesSet . isEmpty ( ) ) { return new Databases ( ) ; } if ( "*" . equals ( databasesSet . iterator ( ) . next ( ) ) ) { return ALL ; } databasesSet . remove ( "*" ) ; databasesSet . remove ( MATCH_NOTHING ) ; return new Databases ( databasesSet ) ; }
Parses a {@code String} of database names in the format used in a <tt>query</tt> or <tt>getcontent</tt> action.
This includes parsing the output of {@link #toString()}. An empty string will be treated as equivalent to
<tt>*</tt>, even though technically there is a slight difference when working with internal databases.

@param databases The string representation to parse
@return A {@code Databases} object