@Override
  public void importData(ImportStrategy importStrategy) throws Exception {
    PortalData dst =
        dataStorage.getPortalConfig(new PortalKey(siteKey.getTypeName(), siteKey.getName()));

    switch (importStrategy) {
        // Really doesn't make sense to "merge" site layout data.  Really two modes, conserve (keep)
        // and overwrite.
      case CONSERVE:
        if (dst == null) {
          dst = data;
          rollbackDelete = data;
        } else {
          dst = null;
        }
        break;
      case MERGE:
      case OVERWRITE:
        if (dst == null) {
          rollbackDelete = data;
        } else {
          rollbackSave = dst;
        }
        dst = data;
        break;
    }

    if (dst != null) {
      if (rollbackDelete == null) {
        dataStorage.save(dst);
      } else {
        dataStorage.create(dst);
      }
    }
  }
 @Override
 public void rollback() throws Exception {
   if (rollbackDelete != null) {
     dataStorage.remove(rollbackDelete);
   } else if (rollbackSave != null) {
     dataStorage.save(rollbackSave);
   }
 }