/*************************************************** * * cismet GmbH, Saarbruecken, Germany * * ... and it just works. * ****************************************************/ package Sirius.server.sql; import org.apache.log4j.Logger; /** * DOCUMENT ME! * * @version $Revision$, $Date$ */ public class QueryParametrizer { //~ Static fields/initializers --------------------------------------------- private static final transient Logger LOG = Logger.getLogger(QueryParametrizer.class); //~ Methods ---------------------------------------------------------------- /** * Hauptfunktionalit\u00E4t der Klasse Parametrizer siehe Klassenbeschreibung.<BR> * * @param statement java.lang.String statement * @param parameters java.lang.Object[] parameters * * @return DOCUMENT ME! */ // FIXME: The statement parameter is modified! public static String parametrize(String statement, final Object[] parameters) { if (statement != null) { statement = statement.trim(); } else { LOG.error("Stmnt in parametrizer NULL"); // NOI18N } // nothing to parametrize if (parameters.length == 0) { return statement; } String parametrizedStmnt = ""; // NOI18N final char chr = '?'; int start = 0; int hit = statement.indexOf(chr); int i = 0; while ((hit != -1) && (i < parameters.length)) { parametrizedStmnt += statement.substring(start, hit); // statement bis zum ersten parameter parametrizedStmnt += parameters[i++].toString(); start = hit + 1; hit = statement.indexOf(chr, start); // logger.debug( parametrizedStmnt + " hit :"+hit+" start :"+start); } parametrizedStmnt += statement.substring(start, statement.length()); // rest after last '?' if (LOG.isDebugEnabled()) { LOG.debug("INFO Stment : " + parametrizedStmnt); // NOI18N } return parametrizedStmnt; } }