All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.orientechnologies.agent.backup.log.OBackupLogFactory Maven / Gradle / Ivy

/*
 * Copyright 2015 OrientDB LTD (info(at)orientdb.com)
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *   For more information: http://www.orientdb.com
 */

package com.orientechnologies.agent.backup.log;

import com.orientechnologies.orient.core.record.impl.ODocument;

/**
 * Created by Enrico Risa on 31/03/16.
 */
public class OBackupLogFactory {

  public OBackupLog fromDoc(ODocument doc) {

    String opString = doc.field(OBackupLog.OP);
    OBackupLogType op = OBackupLogType.valueOf(opString);
    long unitId = doc.field(OBackupLog.UNITID);
    long txId = doc.field(OBackupLog.TXID);
    String uuid = doc.field(OBackupLog.UUID);
    String dbName = doc.field(OBackupLog.DBNAME);
    String mode = doc.field(OBackupLog.MODE);

    OBackupLog log = null;
    switch (op) {
    case BACKUP_STARTED:
      log = new OBackupStartedLog(unitId, txId, uuid, dbName, mode);
      log.fromDoc(doc);
      break;
    case BACKUP_ERROR:
      log = new OBackupErrorLog(unitId, txId, uuid, dbName, mode);
      log.fromDoc(doc);
      break;
    case BACKUP_FINISHED:
      log = new OBackupFinishedLog(unitId, txId, uuid, dbName, mode);
      log.fromDoc(doc);
      break;
    case BACKUP_SCHEDULED:
      log = new OBackupScheduledLog(unitId, txId, uuid, dbName, mode);
      log.fromDoc(doc);
      break;
    case RESTORE_ERROR:
      log = new ORestoreErrorLog(unitId, txId, uuid, dbName, mode);
      log.fromDoc(doc);
      break;
    case RESTORE_FINISHED:
      log = new ORestoreFinishedLog(unitId, txId, uuid, dbName, mode);
      log.fromDoc(doc);
      break;
    case RESTORE_STARTED:
      log = new ORestoreStartedLog(unitId, txId, uuid, dbName, mode);
      log.fromDoc(doc);
      break;
    case UPLOAD_ERROR:
      log = new OBackupUploadErrorLog(unitId, txId, uuid, dbName, mode);
      log.fromDoc(doc);
      break;
    case UPLOAD_STARTED:
      log = new OBackupUploadStartedLog(unitId, txId, uuid, dbName, mode);
      log.fromDoc(doc);
      break;
    case UPLOAD_FINISHED:
      log = new OBackupUploadFinishedLog(unitId, txId, uuid, dbName, mode);
      log.fromDoc(doc);
      break;
    default:
      throw new IllegalStateException("Cannot deserialize passed in log record.");
    }
    return log;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy