private WFSExceptionWriter getFeature ( PrintWriter out , HttpServletRequest hsreq , SimpleGeometryCSBuilder sgcs , String ftName , String fullFtName ) { List < SimpleGeometry > geometryList = new ArrayList < SimpleGeometry > ( ) ; GeometryType geoT = sgcs . getGeometryType ( ftName ) ; if ( geoT == null ) { return new WFSExceptionWriter ( "Feature Type of " + fullFtName + " not found." , "GetFeature" , "OperationProcessingFailed" ) ; } try { switch ( geoT ) { case POINT : Point pt = sgcs . getPoint ( ftName , 0 ) ; int j = 0 ; while ( pt != null ) { geometryList . add ( pt ) ; j ++ ; pt = sgcs . getPoint ( ftName , j ) ; } break ; case LINE : Line line = sgcs . getLine ( ftName , 0 ) ; int k = 0 ; while ( line != null ) { geometryList . add ( line ) ; k ++ ; line = sgcs . getLine ( ftName , k ) ; } break ; case POLYGON : Polygon poly = sgcs . getPolygon ( ftName , 0 ) ; int i = 0 ; while ( poly != null ) { geometryList . add ( poly ) ; i ++ ; poly = sgcs . getPolygon ( ftName , i ) ; } break ; } } // Perhaps will change this to be implemented in the CFPolygon class catch ( ArrayIndexOutOfBoundsException aout ) { } WFSGetFeatureWriter gfdw = new WFSGetFeatureWriter ( out , WFSController . constructServerPath ( hsreq ) , WFSController . getXMLNamespaceXMLNSValue ( hsreq ) , geometryList , ftName ) ; gfdw . startXML ( ) ; gfdw . writeMembers ( ) ; gfdw . finishXML ( ) ; return null ; }
Processes GetFeature requests .