@Override
 public void exportContainer(TemplateContainer container, File path, Callback<Void> callback) {
   try {
     dao.exportContainer(container, path);
     callback.onSuccess(null);
   } catch (ATBException e) {
     callback.onFailure(e);
   }
 }
  @Override
  public TemplateContainer copyContainer(TemplateContainer container) {
    // get complete container and change name (also for templates)
    TemplateContainerComplete origin = dao.getCompleteContainer(container);
    origin.setName(compileCopyOfName(origin.getName()));

    for (Template template : origin.getTemplates()) {
      template.setName(compileCopyOfName(template.getName()));
    }

    // export existing template to buffer
    ByteArrayOutputStream buffer = new ByteArrayOutputStream();
    dao.exportContainer(origin, buffer);

    // import from buffer
    return dao.importContainer(new ByteArrayInputStream(buffer.toByteArray()));
  }