/* * Hibernate, Relational Persistence for Idiomatic Java * * License: GNU Lesser General Public License (LGPL), version 2.1 or later. * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>. */ package org.hibernate.spatial.dialect.sqlserver; import java.util.List; import org.hibernate.dialect.function.StandardSQLFunction; import org.hibernate.engine.spi.SessionFactoryImplementor; import org.hibernate.type.Type; /** * @author Karel Maesen, Geovise BVBA * creation-date: 4/8/13 */ class SqlServerMethod extends StandardSQLFunction { public SqlServerMethod(String name) { super( name ); } @Override public String render(Type firstArgumentType, List arguments, SessionFactoryImplementor sessionFactory) { final StringBuffer buf = new StringBuffer(); if ( arguments.size() < 1 ) { buf.append( getName() ).append( "()" ); } else { buf.append( arguments.get( 0 ) ).append( "." ) .append( getName() ).append( "(" ); for ( int i = 1; i < arguments.size(); i++ ) { buf.append( arguments.get( i ) ); if ( i < arguments.size() - 1 ) { buf.append( "," ); } } buf.append( ")" ); } return buf.toString(); } }