/**
* Copyright (C) 2008-2010, Squale Project - http://www.squale.org
*
* This file is part of Squale.
*
* Squale is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or any later version.
*
* Squale 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 Lesser General Public License
* along with Squale. If not, see <http://www.gnu.org/licenses/>.
*/
/*
* Cr�� le 23 mars 05
*
* Pour changer le mod�le de ce fichier g�n�r�, allez � :
* Fen�tre>Pr�f�rences>Java>G�n�ration de code>Code et commentaires
*/
package org.squale.welcom.outils.jdbc;
import java.util.StringTokenizer;
import org.apache.commons.validator.GenericValidator;
import org.squale.welcom.outils.Util;
/**
* @author M327837
*/
public class WConnectionString
{
/** mot clef URL JNDI pour le parsing ex : URL=jdbc/nomappli */
private static final String URL = "URL";
/** mot clef PASS pour le parsing mot de passe BD si non definit dans le JNDI */
private static final String PASS = "PASS";
/** mot clef USER pour le parsing user BD si non definit dan le JNDI */
private static final String USER = "USER";
/** mot clef NAME pour le parsing nom de la connexion pour le WJDBC ou WMJDBC */
private static final String NAME = "NAME";
/** mot clef DESCRIPTION pour le parsing, description du type de la connexion */
private static final String DESCRIPTION = "DESCRIPTION";
/** mot clef DEFAULT pour le parsing, sp�cifie que c'est la connexion par defaut */
private static final String DEFAULT = "DEFAULT";
/** nom de l'utilisateur pour la bd */
private String userName = "";
/** password pour la bd */
private String userPassword = "";
/** Url du jndi */
private String urlJndi = "";
/** Nom de la connexion pour le WJDBC */
private String name = "";
/** Descrption de la connexion */
private String description = "";
/** NOm du provider */
private String providerUrl = "";
/** Nom de la data source */
private String jndiDataSource = "";
/** Est-ce pa connexion par defaut ? */
private String parDefault = "false";
/**
* @return accesseur
*/
public String getUrlJndi()
{
return urlJndi;
}
/**
* @return accesseur
*/
public String getUserName()
{
return userName;
}
/**
* @return accesseur
*/
public String getUserPassword()
{
return userPassword;
}
/**
* @param url Init de l'url
*/
public void setUrlJndi( final String url )
{
providerUrl = url.substring( 0, url.indexOf( "jdbc" ) );
jndiDataSource = url.substring( url.indexOf( "jdbc" ) );
urlJndi = url;
}
/**
* @param string userName
*/
public void setUserName( final String string )
{
userName = string;
}
/**
* @param string userPassword
*/
public void setUserPassword( final String string )
{
userPassword = string;
}
/**
* Initialise un objet connectionString a partir d'une string
*
* @param connectionString la chaine
*/
public void setConnectionString( final String connectionString )
{
final StringTokenizer st = new StringTokenizer( connectionString, ";" );
while ( st.hasMoreElements() )
{
final String element = (String) st.nextElement();
final int posEqual = element.indexOf( "=" );
String key = "";
String value = "";
if ( posEqual != -1 )
{
key = element.substring( 0, posEqual );
value = element.substring( element.indexOf( "=" ) + 1, element.length() );
}
else
{
key = element;
}
// Set les valeurs dans le bean
setAttribute( key, value );
}
}
/**
* Set les attributes en fonction du parsing
*
* @param key : key
* @param value : valeur
*/
private void setAttribute( final String key, final String value )
{
if ( !GenericValidator.isBlankOrNull( key ) && !GenericValidator.isBlankOrNull( value ) )
{
if ( Util.isEquals( URL, key ) )
{
setUrlJndi( value );
}
if ( Util.isEquals( PASS, key ) )
{
setUserPassword( value );
}
if ( Util.isEquals( USER, key ) )
{
setUserName( value );
}
if ( Util.isEquals( NAME, key ) )
{
setName( value );
}
if ( Util.isEquals( DESCRIPTION, key ) )
{
setDescription( value );
}
}
if ( Util.isEquals( DEFAULT, key ) )
{
setParDefault( "true" );
}
}
/**
* @return description
*/
public String getDescription()
{
return description;
}
/**
* @return name
*/
public String getName()
{
return name;
}
/**
* @param string description
*/
public void setDescription( final String string )
{
description = string;
}
/**
* @param string name
*/
public void setName( final String string )
{
name = string;
}
/**
* @return jndiDataSource
*/
public String getJndiDataSource()
{
return jndiDataSource;
}
/**
* @return providerUrl
*/
public String getProviderUrl()
{
return providerUrl;
}
/**
* @param string jndiDataSource
*/
public void setJndiDataSource( final String string )
{
jndiDataSource = string;
}
/**
* @param string providerUrl
*/
public void setProviderUrl( final String string )
{
providerUrl = string;
}
/**
* @return parDefault
*/
public String getParDefault()
{
return parDefault;
}
/**
* @param string parDefault
*/
public void setParDefault( final String string )
{
parDefault = string;
}
}