private static BBOX extractBBox( SpatialOperator oper ) {
SubType type = oper.getSubType();
switch ( type ) {
case BBOX:
return (BBOX) oper;
case CONTAINS:
if ( !( ( (Contains) oper ).getGeometry() instanceof Point ) )
return new BBOX( ( (Contains) oper ).getParam1(), ( (Contains) oper ).getGeometry().getEnvelope() );
return null;
case CROSSES:
return new BBOX( ( (Crosses) oper ).getParam1(), ( (Crosses) oper ).getGeometry().getEnvelope() );
case DWITHIN:
return null;
case EQUALS:
return new BBOX( ( (Equals) oper ).getParam1(), ( (Equals) oper ).getGeometry().getEnvelope() );
case INTERSECTS:
return new BBOX( ( (Intersects) oper ).getParam1(), ( (Intersects) oper ).getGeometry().getEnvelope() );
case OVERLAPS:
return new BBOX( ( (Overlaps) oper ).getParam1(), ( (Overlaps) oper ).getGeometry().getEnvelope() );
case WITHIN:
return new BBOX( ( (Within) oper ).getParam1(), ( (Within) oper ).getGeometry().getEnvelope() );
default: {
return null;
}
}
}