private void handleGeometryTypes( TextStyling styling, String text, Font font, Geometry geom ) { if ( geom == null ) { LOG.warn( "null geometry cannot be handled." ); return; } if ( geom instanceof Point ) { labelList.add( createLabel( styling, font, text, (Point) geom ) ); } else if ( geom instanceof Surface && styling.linePlacement != null ) { textRenderer.render( styling, font, text, (Surface) geom ); } else if ( geom instanceof Curve && styling.linePlacement != null ) { textRenderer.render( styling, font, text, (Curve) geom ); } else if ( geom instanceof Polygon && styling.auto ) { handlePolygonWithAutoPlacement( styling, font, text, (Polygon) geom ); } else if ( geom instanceof GeometricPrimitive ) { labelList.add( createLabel( styling, font, text, geom.getCentroid() ) ); } else if ( geom instanceof MultiPoint ) { handleMultiGeometry( styling, text, font, (MultiPoint) geom ); } else if ( geom instanceof MultiCurve<?> && styling.linePlacement != null ) { handleMultiGeometry( styling, text, font, (MultiCurve<?>) geom ); } else if ( geom instanceof MultiLineString && styling.linePlacement != null ) { handleMultiGeometry( styling, text, font, (MultiLineString) geom ); } else if ( geom instanceof MultiGeometry<?> ) { handleMultiGeometry( styling, text, font, (MultiGeometry<?>) geom ); } else { LOG.warn( "Trying to use unsupported geometry type '{}' for text rendering.", geom.getClass().getSimpleName() ); } }