/**
SpagoBI, the Open Source Business Intelligence suite
Copyright (C) 2012 Engineering Ingegneria Informatica S.p.A. - SpagoBI Competency Center
This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this file,
You can obtain one at http://mozilla.org/MPL/2.0/.
**/
package it.eng.spagobi.studio.utils.services.serverobjects;
import it.eng.spagobi.sdk.datasources.bo.SDKDataSource;
import it.eng.spagobi.sdk.proxy.DataSourcesSDKServiceProxy;
import it.eng.spagobi.studio.utils.bo.DataSource;
import it.eng.spagobi.studio.utils.exceptions.NoServerException;
import it.eng.spagobi.studio.utils.services.ProxyHandler;
import java.rmi.RemoteException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class ServerDataSources {
private static Logger logger = LoggerFactory.getLogger(ServerDataSources.class);
ProxyHandler proxyHandler = null;
public DataSource[] getDataSourceList() throws RemoteException{
DataSource[] toReturn = null;
SDKDataSource[] sdkDataSources = null;
if(proxyHandler.getDataSourcesSDKServiceProxy() != null)
sdkDataSources = proxyHandler.getDataSourcesSDKServiceProxy().getDataSources();
if(sdkDataSources != null){
toReturn = new DataSource[sdkDataSources.length];
for (int i = 0; i < sdkDataSources.length; i++) {
SDKDataSource sdkDs = sdkDataSources[i];
toReturn[i] = new DataSource(sdkDs);
}
}
return toReturn;
}
public DataSource getDataSource(Integer id) throws RemoteException{
DataSource toReturn = null;
SDKDataSource sdkDataSource = null;
if(proxyHandler.getDataSetsSDKServiceProxy() != null)
sdkDataSource = proxyHandler.getDataSourcesSDKServiceProxy().getDataSource(id);
if(sdkDataSource!= null){
toReturn = new DataSource(sdkDataSource);
}
return toReturn;
}
public DataSource getDataSourceById(Integer dsId) throws NoServerException{
logger.debug("IN");
DataSource toReturn=null;
SDKDataSource sdkDS=null;
try{
DataSourcesSDKServiceProxy dsServiceProxy = proxyHandler.getDataSourcesSDKServiceProxy();
sdkDS = dsServiceProxy.getDataSource(dsId);
}
catch (Exception e) {
logger.error("No comunication with SpagoBI server, could not retrieve map informations", e);
throw(new NoServerException(e));
}
if(sdkDS!=null){
toReturn=new DataSource(sdkDS);
}
logger.debug("OUT");
return toReturn;
}
public ProxyHandler getProxyHandler() {
return proxyHandler;
}
public void setProxyHandler(ProxyHandler proxyHandler) {
this.proxyHandler = proxyHandler;
}
}