importexportmanagerimpl.java
来自「Rapla是一个灵活的多用户资源管理系统。它提供的一些功能有:日历GUI」· Java 代码 · 共 90 行
JAVA
90 行
/*--------------------------------------------------------------------------*
| Copyright (C) 2006 Christopher Kohlhaas |
| |
| This program is free software; you can redistribute it and/or modify |
| it under the terms of the GNU General Public License as published by the |
| Free Software Foundation. A copy of the license has been included with |
| these distribution in the COPYING file, if not go to www.fsf.org |
| |
| As a special exception, you are granted the permissions to link this |
| program with every library, which license fulfills the Open Source |
| Definition as published by the Open Source Initiative (OSI). |
*--------------------------------------------------------------------------*/
package org.rapla.storage.impl;
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.configuration.ConfigurationException;
import org.apache.avalon.framework.logger.Logger;
import org.rapla.framework.RaplaContext;
import org.rapla.framework.RaplaContextException;
import org.rapla.framework.RaplaException;
import org.rapla.storage.CachableStorageOperator;
import org.rapla.storage.ImportExportManager;
/** Imports the content of on store into another.
Export does an import with source and destination exchanged.
<p>Configuration:</p>
<pre>
<importexport id="importexport" activation="request">
<source>file</source>
<dest>sql</dest>
</importexport>
</pre>
*/
public class ImportExportManagerImpl implements ImportExportManager {
RaplaContext serviceManager;
String sourceString;
String destString;
Logger logger;
public ImportExportManagerImpl(RaplaContext serviceManager,Configuration configuration) throws RaplaException
{
this.logger = (Logger) serviceManager.lookup( Logger.class.getName());
this.serviceManager = serviceManager;
try {
sourceString = configuration.getChild("source").getValue();
destString = configuration.getChild("dest").getValue();
} catch (ConfigurationException e) {
throw new RaplaException( e);
}
}
protected Logger getLogger() {
return logger;
}
/* Import the source into dest. */
public void doImport() throws RaplaException {
doConvert(sourceString,destString);
getLogger().info("Convertion from XML to SQL complete");
}
/* Export the dest into source. */
public void doExport() throws RaplaException {
doConvert(destString,sourceString);
getLogger().info("Convertion from SQL to XML complete");
}
private void doConvert(String source,String dest) throws RaplaException {
CachableStorageOperator sourceOperator;
CachableStorageOperator destOperator;
getLogger().info("Start converting from " + source + " to " + dest);
try {
sourceOperator = ( CachableStorageOperator)
serviceManager.lookup(CachableStorageOperator.ROLE + "/" + source);
destOperator = ( CachableStorageOperator)
serviceManager.lookup(CachableStorageOperator.ROLE + "/" + dest);
} catch (RaplaContextException ex) {
throw new RaplaException(ex);
}
sourceOperator.connect();
destOperator.setCache(sourceOperator.getCache());
destOperator.saveData();
sourceOperator.disconnect();
destOperator.disconnect();
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?