View Javadoc

1   /*
2    * Copyright (C) 2003-2012 David E. Berry
3    *
4    * This library is free software; you can redistribute it and/or
5    * modify it under the terms of the GNU Lesser General Public
6    * License as published by the Free Software Foundation; either
7    * version 2.1 of the License, or (at your option) any later version.
8    *
9    * This library is distributed in the hope that it will be useful,
10   * but WITHOUT ANY WARRANTY; without even the implied warranty of
11   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12   * Lesser General Public License for more details.
13   *
14   * You should have received a copy of the GNU Lesser General Public
15   * License along with this library; if not, write to the Free Software
16   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
17   *
18   * A copy of the GNU Lesser General Public License may also be found at
19   * http://www.gnu.org/licenses/lgpl.txt
20   */
21  package org.synchronoss.cpo.parser;
22  
23  import java.text.ParseException;
24  import java.util.List;
25  
26  /**
27   * @author Michael Bellomo
28   */
29  public interface ExpressionParser {
30  
31    /**
32     * Returns the expression used by this parser
33     *
34     * @return The expression
35     */
36    public String getExpression();
37  
38    /**
39     * Sets the expression to be used for this parser
40     *
41     * @param expression The expression
42     */
43    public void setExpression(String expression);
44  
45    /**
46     * Returns the count of the bind markers in the expression
47     *
48     * @return the number of bind markers
49     */
50    public int countArguments();
51  
52    /**
53     * Returns a list of columns from the expression for each bind marker
54     *
55     * @return List of Strings for the columns for the bind markers
56     * @throws ParseException thrown if the expression cannot be parsed
57     */
58    public List<String> parse() throws ParseException;
59  }