// ~ Methods  ------------------------------------------------------------
    @Override
    protected Set<CidsBean> doInBackground() throws Exception {
      final FlurstueckSchluesselCustomBean currentKey =
          LagisBroker.getInstance().getCurrentFlurstueckSchluessel();
      if (currentKey != null) {
        Geometry flurstueckGeom = LagisBroker.getInstance().getInstance().getCurrentWFSGeometry();
        if (flurstueckGeom != null) {
          log.info(
              "Crossover: Geometrie zum bestimmen der Kassenzeichen (vor Transformation): "
                  + flurstueckGeom
                  + ",SRS"
                  + flurstueckGeom.getSRID());
          flurstueckGeom =
              CrsTransformer.transformToGivenCrs(flurstueckGeom, "EPSG:31466"); // Hardcoded FTW
          log.info(
              "Crossover: Geometrie zum bestimmen der Kassenzeichen: "
                  + flurstueckGeom
                  + ",SRS"
                  + flurstueckGeom.getSRID());

          //                    final KassenzeichenFacadeRemote verdisServer =
          // LagisBroker.getInstance().getVerdisServer();

          final String query =
              "SELECT 11, k.id\n"
                  + "FROM  kassenzeichen k, geom\n"
                  + "WHERE k.geometrie = geom.id\n"
                  + "AND not isEmpty(geom.geo_field)\n"
                  + "AND intersects(geom.geo_field,st_buffer(st_buffer(geometryfromtext('"
                  + flurstueckGeom.toText()
                  + "',31466), "
                  + LagisBroker.getInstance().getKassenzeichenBuffer()
                  + "), 0))";

          if (log.isDebugEnabled()) {
            log.debug(query);
          }

          if (isCancelled()) {
            return null;
          }

          final MetaObject[] result =
              CidsBroker.getInstance().getMetaObject(query, "VERDIS_GRUNDIS");
          final HashSet<CidsBean> kassenzeichen =
              new HashSet<CidsBean>((result == null) ? 0 : result.length);

          if (result != null) {
            for (int i = 0; i < result.length; i++) {
              kassenzeichen.add(result[i].getBean());
            }
          }

          //                        kassenzeichen =
          // verdisServer.getIntersectingKassenzeichen(flurstueckGeom,
          //                                LagisBroker.getInstance().getKassenzeichenBuffer());

          if ((kassenzeichen != null) && (kassenzeichen.size() > 0)) {
            if (log.isDebugEnabled()) {
              log.debug("Crossover: Anzahl Kassenzeichen: " + kassenzeichen.size());
            }
          } else {
            log.info("Crossover:Keine geschnittenen Kassenzeichen gefunden."); // ToDo Meldung an
            // benutzer
          }
          return kassenzeichen;
        } else { // ToDo user message !
          lblMessage.setText(
              "<html>Keine Flurstücksgeometrie vorhanden,<br/>bestimmen der Kasssenzeichen nicht möglich.</html>");
          log.warn("Crossover: Keine Geometrie vorhanden zum bestimmen der Kassenzeichen");
        }
      } else {
        // ToDo user message !
        lblMessage.setText(
            "<html>Bitte wählen Sie ein Flurstück aus,<br/>damit Kassenzeichen bestimmt werden können.</html > ");
        log.warn("Crossover: Kein  Flurstück ausgewählt kann Lagis Kassenzeichen nicht bestimmen");
      }
      return null;
    }
 /**
  * DOCUMENT ME!
  *
  * @param crs DOCUMENT ME!
  * @return DOCUMENT ME!
  */
 private boolean isCrsSupported(final Crs crs) {
   return CrsTransformer.extractSridFromCrs(crs.getCode()) == 35833;
 }