/** * 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; } }