001package org.javasimon.jdbc4;
002
003/**
004 * Interface that declares a normalizer: an object that accepts a query and returns a key that
005 * can be used to treat same queries with different parameters as same query
006 *
007 * @author Anton Rybochkin
008 * @since 4.2.0
009 */
010public interface SqlNormalizer {
011        /**
012         * Get type of provided SQL query (SELECT, UPDATE, etc),  "batch" for batch queries
013         * @return SQL query type
014         */
015        String getType();
016
017        /**
018         * Get source SQL query
019         * @return the query
020         */
021        String getSql();
022
023        /**
024         * Get preprocessed query
025         * @return simon key
026         */
027        String getNormalizedSql();
028}