/* * 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.oracle; import java.util.List; import org.hibernate.engine.spi.SessionFactoryImplementor; import org.hibernate.type.StandardBasicTypes; import org.hibernate.type.Type; /** * HQL Implementation for the geometry ype function. */ class GetGeometryTypeFunction extends SDOObjectMethod { GetGeometryTypeFunction() { super( "Get_GType", StandardBasicTypes.STRING ); } public String render(Type firstArgumentType, final List args, final SessionFactoryImplementor factory) { final StringBuffer buf = new StringBuffer(); if ( args.isEmpty() ) { throw new IllegalArgumentException( "First Argument in arglist must be object to which" + " method is applied" ); } buf.append( "CASE " ).append( args.get( 0 ) ).append( "." ).append( getName() ).append( "()" ); buf.append( " WHEN 1 THEN 'POINT'" ).append( " WHEN 2 THEN 'LINESTRING'" ).append( " WHEN 3 THEN 'POLYGON'" ).append( " WHEN 5 THEN 'MULTIPOINT'" ).append( " WHEN 6 THEN 'MULTILINE'" ).append( " WHEN 7 THEN 'MULTIPOLYGON'" ).append( " END" ); return buf.toString(); } }