public static String[] replace(String[] templates, String placeholder, String replacement) { String[] result = new String[templates.length]; for ( int i = 0; i < templates.length; i++ ) { result[i] = replace( templates[i], placeholder, replacement ); } return result; }
protected String getSQLWhereString(String alias) { return StringHelper.replace( sqlWhereStringTemplate, Template.TEMPLATE, alias ); }
protected String getSQLWhereString(String alias) { return StringHelper.replace( sqlWhereStringTemplate, Template.TEMPLATE, alias ); }
public static String replace(String template, String placeholder, String replacement) { return replace( template, placeholder, replacement, false ); }
public SelectFragment addFormula(String tableAlias, String formula, String formulaAlias) { columns.add( StringHelper.replace( formula, Template.TEMPLATE, tableAlias ) ); columnAliases.add(formulaAlias); return this; }
public static String replace( String template, String placeholder, String replacement, boolean wholeWords, boolean encloseInParensIfNecessary) { if ( template == null ) { return null; } int loc = template.indexOf( placeholder ); if ( loc < 0 ) { return template; } else { String beforePlaceholder = template.substring( 0, loc ); String afterPlaceholder = template.substring( loc + placeholder.length() ); return replace( beforePlaceholder, afterPlaceholder, placeholder, replacement, wholeWords, encloseInParensIfNecessary ); } }
private static String[] qualify(String alias, String[] columnNames, String[] formulaTemplates) { int span = columnNames.length; String[] result = new String[span]; for ( int i = 0; i < span; i++ ) { if ( columnNames[i] == null ) { result[i] = StringHelper.replace( formulaTemplates[i], Template.TEMPLATE, alias ); } else { result[i] = StringHelper.qualify( alias, columnNames[i] ); } } return result; }
public InFragment setFormula(String alias, String formulaTemplate) { this.columnName = StringHelper.replace( formulaTemplate, Template.TEMPLATE, alias ); return setColumn( this.columnName ); }
@Override public String toGroupSqlString(Criteria criteria, CriteriaQuery criteriaQuery) { return StringHelper.replace( groupBy, "{alias}", criteriaQuery.getSQLAlias( criteria ) ); }
@Override public String toSqlString(Criteria criteria, CriteriaQuery criteriaQuery) { return StringHelper.replace( sql, "{alias}", criteriaQuery.getSQLAlias( criteria ) ); }
@Override public String toSqlString(Criteria criteria, int loc, CriteriaQuery criteriaQuery) { return StringHelper.replace( sql, "{alias}", criteriaQuery.getSQLAlias( criteria ) ); }
public String[] toColumns(String alias, String propertyName) throws QueryException { //TODO: *two* hashmap lookups here is one too many... String[] columns = columnsByPropertyPath.get( propertyName ); if ( columns == null ) { throw propertyException( propertyName ); } String[] formulaTemplates = formulaTemplatesByPropertyPath.get( propertyName ); String[] columnReaderTemplates = columnReaderTemplatesByPropertyPath.get( propertyName ); String[] result = new String[columns.length]; for ( int i = 0; i < columns.length; i++ ) { if ( columnReaderTemplates[i] == null ) { result[i] = StringHelper.replace( formulaTemplates[i], Template.TEMPLATE, alias ); } else { result[i] = StringHelper.replace( columnReaderTemplates[i], Template.TEMPLATE, alias ); } } return result; }
public String[] toColumns(String propertyName) throws QueryException { String[] columns = columnsByPropertyPath.get( propertyName ); if ( columns == null ) { throw propertyException( propertyName ); } String[] formulaTemplates = formulaTemplatesByPropertyPath.get( propertyName ); String[] columnReaders = columnReadersByPropertyPath.get( propertyName ); String[] result = new String[columns.length]; for ( int i = 0; i < columns.length; i++ ) { if ( columnReaders[i] == null ) { result[i] = StringHelper.replace( formulaTemplates[i], Template.TEMPLATE, "" ); } else { result[i] = columnReaders[i]; } } return result; }
@Override public String getManyToManyFilterFragment(String alias, Map enabledFilters) { StringBuilder buffer = new StringBuilder(); manyToManyFilterHelper.render( buffer, elementPersister.getFilterAliasGenerator(alias), enabledFilters ); if ( manyToManyWhereString != null ) { buffer.append( " and " ) .append( StringHelper.replace( manyToManyWhereTemplate, Template.TEMPLATE, alias ) ); } return buffer.toString(); }
@Override public String getTemplate(Dialect dialect, SQLFunctionRegistry functionRegistry) { String template = Template.renderWhereStringTemplate(formula, dialect, functionRegistry); return safeInterning( StringHelper.replace( template, "{alias}", Template.TEMPLATE ) ); }
private String render(FilterAliasGenerator aliasGenerator, int filterIndex) { Map<String, String> aliasTableMap = filterAliasTableMaps[filterIndex]; String condition = filterConditions[filterIndex]; if ( filterAutoAliasFlags[filterIndex] ) { return StringHelper.replace( condition, FilterImpl.MARKER, aliasGenerator.getAlias( aliasTableMap.get( null ) ) ); } else if ( isTableFromPersistentClass( aliasTableMap ) ) { return condition.replace( "{alias}", aliasGenerator.getAlias( aliasTableMap.get( null ) ) ); } else { for ( Map.Entry<String, String> entry : aliasTableMap.entrySet() ) { condition = condition.replace( "{" + entry.getKey() + "}", aliasGenerator.getAlias( entry.getValue() ) ); } return condition; } } }
public static String expandBatchIdPlaceholder( String sql, Serializable[] ids, String alias, String[] keyColumnNames, Dialect dialect) { if ( keyColumnNames.length == 1 ) { // non-composite return StringHelper.replace( sql, BATCH_ID_PLACEHOLDER, repeat( "?", ids.length, "," ) ); } else { // composite if ( dialect.supportsRowValueConstructorSyntaxInInList() ) { final String tuple = "(" + StringHelper.repeat( "?", keyColumnNames.length, "," ) + ")"; return StringHelper.replace( sql, BATCH_ID_PLACEHOLDER, repeat( tuple, ids.length, "," ) ); } else { final String keyCheck = "(" + joinWithQualifierAndSuffix( keyColumnNames, alias, " = ?", " and " ) + ")"; return replace( sql, BATCH_ID_PLACEHOLDER, repeat( keyCheck, ids.length, " or " ) ); } } }
public String[] toColumns(String name, final int i) { final String alias = generateTableAlias( name, getSubclassPropertyTableNumber( i ) ); String[] cols = getSubclassPropertyColumnNames( i ); String[] templates = getSubclassPropertyFormulaTemplateClosure()[i]; String[] result = new String[cols.length]; for ( int j = 0; j < cols.length; j++ ) { if ( cols[j] == null ) { result[j] = StringHelper.replace( templates[j], Template.TEMPLATE, alias ); } else { result[j] = StringHelper.qualify( alias, cols[j] ); } } return result; }