package cz.abclinuxu.datoveschranky.impl; import cz.abclinuxu.datoveschranky.common.impl.Config; import cz.abclinuxu.datoveschranky.common.interfaces.DataBoxAccessService; import cz.abclinuxu.datoveschranky.common.interfaces.DataBoxDownloadService; import cz.abclinuxu.datoveschranky.common.interfaces.DataBoxMessagesService; import cz.abclinuxu.datoveschranky.common.interfaces.DataBoxSearchService; import cz.abclinuxu.datoveschranky.common.interfaces.DataBoxServices; import cz.abclinuxu.datoveschranky.common.interfaces.DataBoxUploadService; import cz.abclinuxu.datoveschranky.ws.ServiceBuilder; import cz.abclinuxu.datoveschranky.ws.db.DataBoxManipulationPortType; import cz.abclinuxu.datoveschranky.ws.db.DataBoxSearchPortType; import cz.abclinuxu.datoveschranky.ws.dm.DmInfoPortType; import cz.abclinuxu.datoveschranky.ws.dm.DmOperationsPortType; import java.io.File; /** * * @author xrosecky */ public class DataBoxManager implements DataBoxServices { protected Authentication auth = null; protected Config config = null; protected DataBoxMessagesService dataBoxMessagesService = null; protected DataBoxDownloadService dataBoxDownloadService = null; protected DataBoxUploadService dataBoxUploadService = null; protected DataBoxSearchServiceImpl dataBoxFindingService = null; protected MessageValidator messageValidator = null; public DataBoxManager(Config conf, Authentication auth) { this.auth = auth; this.config = conf; this.messageValidator = new MessageValidator(config); } public static DataBoxManager login(Config config, String userName, String password) throws Exception { Authentication auth = BasicAuthentication.login(config, userName, password); DataBoxManager manager = new DataBoxManager(config, auth); return manager; } public static DataBoxManager login(Config config, File clientCert, String password) throws Exception { return null; } public DataBoxDownloadService getDataBoxDownloadService() { if (dataBoxDownloadService == null) { DmOperationsPortType dataMessageOperationsService = auth.createService( ServiceBuilder.createDmOperationsWebService(), DmOperationsPortType.class, "dz"); dataBoxDownloadService = new DataBoxDownloadServiceImpl(dataMessageOperationsService, messageValidator); } return dataBoxDownloadService; } public DataBoxMessagesService getDataBoxMessagesService() { if (dataBoxMessagesService == null) { DmInfoPortType dataMessageInfo = auth.createService( ServiceBuilder.createDmInfoWebService(), DmInfoPortType.class, "dx"); dataBoxMessagesService = new DataBoxMessagesServiceImpl(dataMessageInfo); } return dataBoxMessagesService; } public DataBoxUploadService getDataBoxUploadService() { if (dataBoxUploadService == null) { DmOperationsPortType dataMessageOperationsService = auth.createService( ServiceBuilder.createDmOperationsWebService(), DmOperationsPortType.class, "dz"); dataBoxUploadService = new DataBoxUploadServiceImpl(dataMessageOperationsService); } return dataBoxUploadService; } public DataBoxSearchService getDataBoxSearchService() { if (dataBoxFindingService == null) { DataBoxManipulationPortType manipulationService = auth.createService( ServiceBuilder.createDataBoxManipulation(), DataBoxManipulationPortType.class, "df"); DataBoxSearchPortType searchService = auth.createService( ServiceBuilder.createDataBoxSearch(), DataBoxSearchPortType.class, "df"); dataBoxFindingService = new DataBoxSearchServiceImpl(manipulationService, searchService); } return dataBoxFindingService; } public DataBoxAccessService getDataBoxAccessService() { throw new UnsupportedOperationException("Operace getDataBoxAccessService neni " + "touto knihovnou podporovana."); } }