/** supports the Sampling specification of version 1.0: */
  public void initializeFeature(OXFFeature feature, SamplingPointType xb_saPoint) {
    super.initializeFeature(feature, xb_saPoint);

    //
    // --- initialize the POSITION-attribute:

    if (xb_saPoint.getPosition() != null
        && xb_saPoint.getPosition().getPoint() != null
        && ((PointType) xb_saPoint.getPosition().getPoint()).getPos() != null) {

      PointType xb_point = xb_saPoint.getPosition().getPoint();

      DirectPositionType xb_pos = xb_point.getPos();

      List coordsList = xb_pos.getListValue();

      double x = (Double) coordsList.get(0);
      double y = (Double) coordsList.get(1);
      double z = Double.NaN;
      try {
        z = (Double) coordsList.get(2);
      } catch (Exception e) {
        // no Exception -> 2D Point
      }

      if (coordsList.size() > 2) {
        z = (Double) coordsList.get(2);
      }

      Point point = new GeometryFactory().createPoint(new Coordinate(x, y, z));

      feature.setAttribute(POSITION, point);
      initializeFeaturesGeometry(feature, point);
    }

    // check if the geometry-attribute is set: (could be set in this or the super class)
    if (feature.getGeometry() == null) {
      throw new IllegalArgumentException("The geometry attribute could not be initialized.");
    }
  }
  /**
   * @param feature
   * @param nameValue
   * @param descriptionValue
   * @param locationValue
   * @param timeValue
   * @param procedureValue
   * @param observedPropertyValue
   * @param featureOfInterestValue
   * @param resultValue
   */
  public void initializeFeature(
      OXFFeature feature,
      String[] nameValue,
      String descriptionValue,
      Geometry locationValue,
      ITime timeValue,
      String procedureValue,
      OXFPhenomenonPropertyType observedPropertyValue,
      OXFFeature featureOfInterestValue,
      Number resultValue) {
    super.initializeFeature(
        feature,
        nameValue,
        descriptionValue,
        locationValue,
        timeValue,
        procedureValue,
        observedPropertyValue,
        featureOfInterestValue);

    feature.setAttribute(RESULT, resultValue);
  }