/* ==================================================================
* ChargeSessionManager_v15Settings.java - 18/06/2015 10:57:37 am
*
* Copyright 2007-2015 SolarNetwork.net Dev Team
*
* 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; either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
* 02111-1307 USA
* ==================================================================
*/
package net.solarnetwork.node.ocpp.charge;
import java.util.Map;
import net.solarnetwork.node.DatumDataSource;
import net.solarnetwork.node.domain.ACEnergyDatum;
import net.solarnetwork.node.ocpp.AuthorizationManager;
import net.solarnetwork.util.FilterableService;
import net.solarnetwork.util.OptionalServiceCollection;
/**
* API to expose the configurable bean properties of
* {@link ChargeSessionManager_v15}, so that Spring's AOP transaction proxy
* picks up these methods to allow Configuration Admin to call them.
*
* @author matt
* @version 1.0
*/
public interface ChargeSessionManager_v15Settings {
/**
* Initialize the OCPP client. Call this once after all properties
* configured.
*/
public void startup();
/**
* Shutdown the OCPP client, releasing any associated resources.
*/
public void shutdown();
/**
* Get a configurable collection of data sources for meter readings.
*
* @return The configurable collection of data sources.
*/
public OptionalServiceCollection<DatumDataSource<ACEnergyDatum>> getMeterDataSource();
/**
* Get a {@link FilterableService} for the {@link AuthorizationManager}.
*
* @return A version of the AuthorizationManager that also implements
* {@link FilterableService}.
*/
public FilterableService getFilterableAuthManager();
/**
* Set a {@code socketConnectorMapping} Map via an encoded String value.
*
* <p>
* The format of the {@code mapping} String should be:
* </p>
*
* <pre>
* key=val[,key=val,...]
* </pre>
*
* <p>
* Whitespace is permitted around all delimiters, and will be stripped from
* the keys and values.
* </p>
*
* @param mapping
* The encoding mapping to set.
* @see #getSocketConnectorMappingValue()
* @see #setSocketConnectorMapping(Map)
*/
void setSocketConnectorMappingValue(String mapping);
/**
* Set a {@code socketMeterSourceMapping} Map via an encoded String value.
*
* <p>
* The format of the {@code mapping} String should be:
* </p>
*
* <pre>
* key=val[,key=val,...]
* </pre>
*
* <p>
* Whitespace is permitted around all delimiters, and will be stripped from
* the keys and values.
* </p>
*
* @param mapping
* The encoding mapping to set.
* @see #getSocketMeterSourceMappingValue()
* @see #setSocketMeterSourceMapping(Map)
*/
void setSocketMeterSourceMappingValue(String mapping);
}