/*
* 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 org.hibernate.spatial.dialect.oracle.criterion.OracleSpatialAggregate;
/**
* Provides Aggregate type spatial function interpretation
*/
class SpatialAggregate {
private boolean aggregateType;
private String aggregateSyntax;
private static final String SDO_AGGR = "SDO_AGGR_";
SpatialAggregate() {
}
SpatialAggregate(int aggregation) {
String specificAggrSyntax;
switch ( aggregation ) {
case org.hibernate.spatial.SpatialAggregate.EXTENT:
specificAggrSyntax = "MBR";
aggregateType = false;
break;
case OracleSpatialAggregate.LRS_CONCAT:
specificAggrSyntax = "LRS_CONCAT";
aggregateType = true;
break;
case OracleSpatialAggregate.CENTROID:
specificAggrSyntax = "CENTROID";
aggregateType = true;
break;
case OracleSpatialAggregate.CONCAT_LINES:
specificAggrSyntax = "CONCAT_LINES";
aggregateType = false;
break;
case OracleSpatialAggregate.UNION:
specificAggrSyntax = "UNION";
aggregateType = true;
break;
case OracleSpatialAggregate.CONVEXHULL:
specificAggrSyntax = "CONVEXHULL";
aggregateType = true;
break;
default:
specificAggrSyntax = null;
break;
}
if ( specificAggrSyntax != null ) {
aggregateSyntax = SDO_AGGR + specificAggrSyntax;
}
}
public boolean isAggregateType() {
return aggregateType;
}
public String getAggregateSyntax() {
return aggregateSyntax;
}
}