code: public void setDataStore(DataStore store)
      {
          if(store.size() > 0)
              throw new RuntimeException("A non-empty data store was provided to an already existing dataset object.");
          store.setCategoricalDataInfo(this.datapoints.getCategoricalDataInfo());
          store.setNumNumeric(numNumerVals);
          if(this.datapoints.size() > 0)
          {
              for(int i = 0; i < this.datapoints.size(); i++)
                  store.addDataPoint(this.getDataPoint(i));
          }
          this.datapoints = store;
      }
docs: This method changes the back-end store used to hold and represent data
  points. Changing this may be beneficial for expert users who know how
  their data will be accessed, or need to make modifications for more
  efficient storage.<br>
  If the currently data store is not empty, it's contents will be copied to
  the new store. <br>
  If the provided data store is not empty, and error will occur.
  
  @param store the new method for stroing data points