package org.marketcetera.saclient.rpc;
import java.util.List;
import java.util.Map;
import org.marketcetera.module.ModuleInfo;
import org.marketcetera.module.ModuleURN;
import org.marketcetera.saclient.CreateStrategyParameters;
import org.marketcetera.util.misc.ClassVersion;
/* $License$ */
/**
* Provides {@link SAService} services.
*
* @author <a href="mailto:colin@marketcetera.com">Colin DuPlantis</a>
* @version $Id: SAServiceAdapter.java 16901 2014-05-11 16:14:11Z colin $
* @since 2.4.0
*/
@ClassVersion("$Id: SAServiceAdapter.java 16901 2014-05-11 16:14:11Z colin $")
public interface SAServiceAdapter
{
/**
* Gets the list of providers.
*
* @return a <code>List<ModuleURN></code> value
*/
List<ModuleURN> getProviders();
/**
* Gets the list of instances for the given provider.
*
* @param inProvider a <code>ModuleURN</code> value
* @return a <code>List<ModuleURN></code> value
*/
List<ModuleURN> getInstances(ModuleURN inProvider);
/**
* Gets the module info for the given instance.
*
* @param inInstance a <code>ModuleURN</code> value
* @return a <code>ModuleInfo</code> value
*/
ModuleInfo getModuleInfo(ModuleURN inInstance);
/**
* Starts the given module.
*
* @param inInstance a <code>ModuleURN</code> value
*/
void start(ModuleURN inInstance);
/**
* Stops the given module.
*
* @param inInstance a <code>ModuleURN</code> value
*/
void stop(ModuleURN inInstance);
/**
* Deletes the given module.
*
* @param inInstance a <code>ModuleURN</code> value
*/
void delete(ModuleURN inInstance);
/**
* Gets the properties of the given module.
*
* @param inInstance a <code>ModuleURN</code> value
* @return a <code>Map<String,Object></code> value
*/
Map<String,Object> getProperties(ModuleURN inInstance);
/**
* Sets the properties of the given module.
*
* @param inInstance a <code>ModuleURN</code> value
* @param inProperties a <code>Map<String,Object></code> value
* @return a <code>Map<String,Object></code> value
*/
Map<String,Object> setProperties(ModuleURN inInstance,
Map<String,Object> inProperties);
/**
* Creates a strategy with the given parameters.
*
* @param inParameters a <code>CreateStrategyParameters</code> value
* @return a <code>ModuleURN</code> value
*/
ModuleURN createStrategy(CreateStrategyParameters inParameters);
/**
* Gets the strategy parameters of the given module.
*
* @param inInstance a <code>ModuleURN</code> value
* @return a <code>CreateStrategyParameters</code> value
*/
CreateStrategyParameters getStrategyCreateParms(ModuleURN inInstance);
/**
* Sends the data to the SA for distribution.
*
* @param inData an <code>Object</code> value
*/
void sendData(Object inData);
}