package com.orientechnologies.orient.client.remote;
import com.orientechnologies.common.exception.OException;
import com.orientechnologies.orient.core.command.OCommandOutputListener;
import com.orientechnologies.orient.core.db.ODatabaseDocumentInternal;
import com.orientechnologies.orient.core.db.document.ODatabaseDocument;
import com.orientechnologies.orient.core.db.tool.ODatabaseImpExpAbstract;
import com.orientechnologies.orient.core.db.tool.ODatabaseImportException;
import com.orientechnologies.orient.core.db.tool.ODatabaseTool;
import com.orientechnologies.orient.core.storage.OStorage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
/**
* Created by tglman on 19/07/16.
*/
public class ODatabaseImportRemote extends ODatabaseImpExpAbstract {
private String options;
public ODatabaseImportRemote(ODatabaseDocumentInternal iDatabase, String iFileName, OCommandOutputListener iListener) {
super(iDatabase, iFileName, iListener);
}
@Override
public void run() {
try {
importDatabase();
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public ODatabaseTool setOptions(String iOptions) {
this.options = iOptions;
return super.setOptions(iOptions);
}
public void importDatabase() throws ODatabaseImportException {
OStorageRemote storage = (OStorageRemote) ((ODatabaseDocumentInternal) getDatabase()).getStorage();
File file = new File(getFileName());
try {
storage.importDatabase(options, new FileInputStream(file), file.getName(), getListener());
} catch (FileNotFoundException e) {
throw OException.wrapException(new ODatabaseImportException("Error importing the database"), e);
}
}
public void close() {
}
}