}
// Generate the actual JDBC SQL text by processing the embedded parameter/field macros
// in the provided JPOXSQL text.
parameterOccurrences = new ArrayList();
MacroString ms = new MacroString(candidateClass != null ? candidateClass.getName() : null,
candidateClass != null ? imports : null, inputSQL);
return ms.substituteMacros(new MacroString.MacroHandler()
{
public void onIdentifierMacro(MacroString.IdentifierMacro im)
{
// Only process identifier macros when the candidate class is known
if (candidateClass != null)