/** 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.documents.bo.SDKDocument; import it.eng.spagobi.sdk.documents.bo.SDKTemplate; import it.eng.spagobi.sdk.engines.bo.SDKEngine; import it.eng.spagobi.sdk.maps.bo.SDKFeature; import it.eng.spagobi.sdk.maps.bo.SDKMap; import it.eng.spagobi.sdk.proxy.MapsSDKServiceProxy; import it.eng.spagobi.studio.utils.bo.Document; import it.eng.spagobi.studio.utils.bo.Engine; import it.eng.spagobi.studio.utils.bo.GeoFeature; import it.eng.spagobi.studio.utils.bo.GeoMap; import it.eng.spagobi.studio.utils.bo.Server; import it.eng.spagobi.studio.utils.bo.Template; import it.eng.spagobi.studio.utils.exceptions.NoServerException; import it.eng.spagobi.studio.utils.sdk.SDKProxyFactory; import it.eng.spagobi.studio.utils.services.ProxyHandler; import it.eng.spagobi.studio.utils.services.ServerObjectsTranslator; import it.eng.spagobi.studio.utils.services.server.ServerHandler; import java.rmi.RemoteException; import java.util.Vector; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class ServerMaps { private static Logger logger = LoggerFactory.getLogger(ServerMaps.class); ProxyHandler proxyHandler = null; public GeoFeature[] getFeaturesByMapId(Integer mapId) throws NoServerException{ logger.debug("IN"); GeoFeature[] toReturn=null; SDKFeature[] sdkFeatures=null; try{ MapsSDKServiceProxy mapProxy = proxyHandler.getMapsServiceProxy(); sdkFeatures =mapProxy.getMapFeatures(mapId); } catch (Exception e) { logger.error("No comunication with SpagoBI server, could not retrieve map informations", e); throw(new NoServerException(e)); } if(sdkFeatures!=null){ toReturn=new GeoFeature[sdkFeatures.length]; for (int i = 0; i < sdkFeatures.length; i++) { SDKFeature sdkFeature=sdkFeatures[i]; GeoFeature geoFeature=new GeoFeature(sdkFeature); toReturn[i]=geoFeature; } } logger.debug("OUT"); return toReturn; } public GeoFeature[] getAllFeatures() throws NoServerException{ logger.debug("IN"); GeoFeature[] toReturn=null; SDKFeature[] sdkFeatures=null; try{ MapsSDKServiceProxy mapProxy = proxyHandler.getMapsServiceProxy(); sdkFeatures =mapProxy.getFeatures(); } catch (Exception e) { logger.error("No comunication with SpagoBI server, could not retrieve map informations", e); throw(new NoServerException(e)); } if(sdkFeatures!=null){ toReturn=new GeoFeature[sdkFeatures.length]; for (int i = 0; i < sdkFeatures.length; i++) { SDKFeature sdkFeature=sdkFeatures[i]; GeoFeature geoFeature=new GeoFeature(sdkFeature); toReturn[i]=geoFeature; } } logger.debug("OUT"); return toReturn; } public GeoMap getGeoMapById(Integer geoId) throws NoServerException{ logger.debug("IN"); GeoMap toReturn=null; SDKMap sdkMap=null; try{ MapsSDKServiceProxy mapServiceProxy = proxyHandler.getMapsServiceProxy(); sdkMap=mapServiceProxy.getMapById(geoId); } catch (Exception e) { logger.error("No comunication with SpagoBI server, could not retrieve map informations", e); throw(new NoServerException(e)); } if(sdkMap!=null){ toReturn=new GeoMap(sdkMap); } logger.debug("OUT"); return toReturn; } public Vector<GeoMap> getAllGeoMaps() throws NoServerException{ logger.debug("IN"); Vector<GeoMap> toReturn=new Vector<GeoMap>(); SDKMap[] sdkMaps=null; try{ // Server server = new ServerHandler().getCurrentActiveServer(projectName); // SDKProxyFactory proxyFactory=new SDKProxyFactory(server); // MapsSDKServiceProxy mapsServiceProxy=proxyFactory.getMapsSDKServiceProxy(); MapsSDKServiceProxy mapsServiceProxy=proxyHandler.getMapsServiceProxy(); sdkMaps=mapsServiceProxy.getMaps(); } catch (Exception e) { logger.error("No comunication with SpagoBI server, could not retrieve map informations", e); throw(new NoServerException(e)); } for (int i = 0; i < sdkMaps.length; i++) { SDKMap sdkMap=sdkMaps[i]; GeoMap geoMap=new GeoMap(sdkMap); if(geoMap!=null){ toReturn.add(geoMap); } } logger.debug("OUT"); return toReturn; } public ProxyHandler getProxyHandler() { return proxyHandler; } public void setProxyHandler(ProxyHandler proxyHandler) { this.proxyHandler = proxyHandler; } }