public CdaDataFactory clone() {
   final CdaDataFactory dataFactory = (CdaDataFactory) super.clone();
   dataFactory.queries = (LinkedHashMap<String, CdaQueryEntry>) queries.clone();
   if (backend != null) {
     dataFactory.backend = (CdaQueryBackend) backend.clone();
   }
   return dataFactory;
 }
 public TableModel queryData(final String query, final DataRow parameters)
     throws ReportDataFactoryException {
   final CdaQueryEntry realQuery = getQueryEntry(query);
   effectiveBackend.setFile(getFile());
   effectiveBackend.setSolution(getSolution());
   effectiveBackend.setPath(getPath());
   effectiveBackend.setUsername(getUsername());
   effectiveBackend.setPassword(getPassword());
   effectiveBackend.setBaseUrl(computeBaseUrl(parameters));
   effectiveBackend.initialize(getDataFactoryContext());
   return effectiveBackend.queryData(realQuery, parameters);
 }
 public void cancelRunningQuery() {
   if (effectiveBackend != null) {
     effectiveBackend.cancelRunningQuery();
   }
 }