/*
* Copyright (c) 1990-2012 kopiLeft Development SARL, Bizerte, Tunisia
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License version 2.1 as published by the Free Software Foundation.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* $Id$
*/
package org.kopi.ebics.interfaces;
import java.util.Locale;
/**
* EBICS client application configuration.
*
* @author hachani
*
*/
public interface Configuration {
/**
* Returns the root directory of the client application.
* @return the root directory of the client application.
*/
public String getRootDirectory();
/**
* Returns the default log directory of the application.
* @return the default log directory
*/
public String getLogDirectory();
/**
* Returns the default log file name of the application
* @return the default log file name
*/
public String getLogFileName();
/**
* Returns the EBICS configuration file.
* @return the EBICS configuration file.
*/
public String getConfigurationFile();
/**
* Returns the property value of a given key from
* the configuration file
* @param key the given key
* @return the property value
*/
public String getProperty(String key);
/**
* Returns the directory path of the key store that contains
* bank and user certificates.
* @param the ebics user.
* @return the key store directory of a given user.
*/
public String getKeystoreDirectory(EbicsUser user);
/**
* Returns the directory path that contains the traces
* XML transfer files.
* @param user the ebics user
* @return the transfer trace directory
*/
public String getTransferTraceDirectory(EbicsUser user);
/**
* Returns the object serialization directory.
* @param user the ebics user
* @return the object serialization directory.
*/
public String getSerializationDirectory();
/**
* Returns the SSL trusted store directory.
* @return the SSL trusted store directory.
*/
public String getSSLTrustedStoreDirectory();
/**
* Return the SSL key store directory
* @return the SSL key store directory
*/
public String getSSLKeyStoreDirectory();
/**
* Returns the SSL bank server certificates.
* @return the SSL bank server certificates.
*/
public String getSSLBankCertificates();
/**
* Returns the users directory.
* @return the users directory.
*/
public String getUsersDirectory();
/**
* Returns the Ebics client serialization manager.
* @return the Ebics client serialization manager.
*/
public SerializationManager getSerializationManager();
/**
* Returns the Ebics client trace manager.
* @return the Ebics client trace manager.
*/
public TraceManager getTraceManager();
/**
* Returns the letter manager.
* @return the letter manager.
*/
public LetterManager getLetterManager();
/**
* Returns the initializations letters directory.
* @return the initializations letters directory.
*/
public String getLettersDirectory(EbicsUser user);
/**
* Returns the users directory.
* @return the users directory.
*/
public String getUserDirectory(EbicsUser user);
/**
* Returns the client application logger.
* @return the client application logger.
*/
public EbicsLogger getLogger();
/**
* Configuration initialization.
* Creates the necessary directories for the ebics configuration.
*/
public void init();
/**
* Returns the application locale.
* @return the application locale.
*/
public Locale getLocale();
/**
* Returns the client application signature version
* @return the signature version
*/
public String getSignatureVersion();
/**
* Returns the client application authentication version
* @return the authentication version
*/
public String getAuthenticationVersion();
/**
* Returns the client application encryption version
* @return the encryption version
*/
public String getEncryptionVersion();
/**
* Tells if the client application should keep XML transfer
* files in the transfer log directory
* @return True if the client application should not delete
* the XML transfer files
*/
public boolean isTraceEnabled();
/**
* Returns if the files to be transferred should be
* compressed or sent without compression. This can
* affect the time of data upload especially for big
* files
*
* @return true if the file compression is enabled
*/
public boolean isCompressionEnabled();
/**
* Returns the default revision of sent XML.
* @return the default revision of sent XML.
*/
public int getRevision();
/**
* Returns the version of the EBICS protocol used by the client.
* @return the version of the EBICS protocol.
*/
public String getVersion();
}