class QueryParsers {

    public QueryCommand parse( TypeSystem typeSystem,
                               String language,
                               String query ) {
        CheckArg.isNotNull(language, "language");
        CheckArg.isNotNull(typeSystem, "typeSystem");
        CheckArg.isNotNull(query, "query");
        QueryParser parser = parsers.get(language.trim().toLowerCase());
        if (parser == null) {
            throw new IllegalArgumentException(GraphI18n.unknownQueryLanguage.text(language));
        }
        return parser.parseQuery(query, typeSystem);
    }

    public  QueryParsers( QueryParser... parsers );
    public  QueryParsers( Iterable<QueryParser> parsers );

}