code: public Element externalize(Datastore datastore) throws UnsupportedOperationException {
          if (datastore == null) {
              throw new IllegalArgumentException("Datastore cannot be null");
          }
  
          final Element elem;
  
          if (datastore instanceof CsvDatastore) {
              final Resource resource = ((CsvDatastore) datastore).getResource();
              final String filename = toFilename(resource);
              elem = toElement((CsvDatastore) datastore, filename);
          } else if (datastore instanceof ExcelDatastore) {
              final Resource resource = ((ExcelDatastore) datastore).getResource();
              final String filename = toFilename(resource);
              elem = toElement((ExcelDatastore) datastore, filename);
          } else if (datastore instanceof JdbcDatastore) {
              elem = toElement((JdbcDatastore) datastore);
          } else {
              throw new UnsupportedOperationException("Non-supported datastore: " + datastore);
          }
  
          final Element datastoreCatalogElement = getDatastoreCatalogElement();
          datastoreCatalogElement.appendChild(elem);
  
          onDocumentChanged(getDocument());
  
          return elem;
      }
docs: Externalizes the given datastore
  
  @param datastore
  @return
  @throws UnsupportedOperationException