Ejemplo n.º 1
0
  /**
   * This method is called when the end tag of an XML element is encountered.
   *
   * @param name Name of the element that is encountered.
   */
  public void endElement(String namespace, String name, String qName) {
    if (name.equals("data_set") || qName.equals("data_set")) {
      // Store feature_name_list and feature_values_list in
      // current_root_dataset
      if (feature_name_list != null) {
        Object[] fnl_obj = (Object[]) feature_name_list.toArray();
        String[] fnl_string = new String[fnl_obj.length];
        for (int i = 0; i < fnl_string.length; i++) fnl_string[i] = (String) fnl_obj[i];
        current_root_dataset.feature_names = fnl_string;

        Object[] fvl_obj = (Object[]) feature_values_list.toArray();
        double[][] fvl_doub = new double[fvl_obj.length][];
        for (int i = 0; i < fvl_doub.length; i++) fvl_doub[i] = (double[]) fvl_obj[i];
        current_root_dataset.feature_values = fvl_doub;
      }

      // Store the sub-sets of the data set (null if none)
      if (subset_datasets != null) {
        Object[] dsl_obj = (Object[]) subset_datasets.toArray();
        DataSet[] dsl_ds = new DataSet[dsl_obj.length];
        for (int i = 0; i < dsl_ds.length; i++) dsl_ds[i] = (DataSet) dsl_obj[i];
        current_root_dataset.sub_sets = dsl_ds;
      }

      // Reset variables
      feature_name_list = null;
      feature_values_list = null;
      subset_datasets = null;
      current_root_dataset = null;
    } else if (name.equals("section") || qName.equals("section")) {
      // Store feature_name_list and feature_values_list in
      // current_subset_dataset
      if (feature_name_list != null) {
        Object[] fnl_obj = (Object[]) feature_name_list.toArray();
        String[] fnl_string = new String[fnl_obj.length];
        for (int i = 0; i < fnl_string.length; i++) fnl_string[i] = (String) fnl_obj[i];
        current_subset_dataset.feature_names = fnl_string;

        Object[] fvl_obj = (Object[]) feature_values_list.toArray();
        double[][] fvl_doub = new double[fvl_obj.length][];
        for (int i = 0; i < fvl_doub.length; i++) fvl_doub[i] = (double[]) fvl_obj[i];
        current_subset_dataset.feature_values = fvl_doub;
      }

      // Reset variables
      feature_name_list = null;
      feature_values_list = null;
      current_subset_dataset = null;
    } else if (name.equals("feature") || qName.equals("feature")) {
      // Convert the feature_indidual_values_list into doubles
      // and store it in feature_values_list
      Object[] fvs_obj = (Object[]) feature_indidual_values_list.toArray();
      double[] fvs_double = new double[fvs_obj.length];
      for (int i = 0; i < fvs_double.length; i++)
        fvs_double[i] = Double.parseDouble((String) fvs_obj[i]);

      // Reset variables
      feature_values_list.add(fvs_double);
      feature_indidual_values_list = null;
    }
  }